當前位置:首頁 » 編程語言 » python類引用變數

python類引用變數

發布時間: 2022-09-12 20:54:08

python類和實例變數的理解與運用

9.3.5. 類和實例變數
一般來說,實例變數用於對每一個實例都是唯一的數據,類變數用於類的所有實例共享的屬性和方法:
class Dog:
kind = 'canine' # class variable shared by all instances
def __init__(self, name):
self.name = name # instance variable unique to each instance
>>> d = Dog('Fido')
>>> e = Dog('Buddy')
>>> d.kind # shared by all dogs
'canine'
>>> e.kind # shared by all dogs
'canine'
>>> d.name # unique to d
'Fido'
>>> e.name # unique to e
'Buddy'
正如在 術語相關 討論的, 可變 對象,例如列表和字典,的共享數據可能帶來意外的效果。例如,下面代碼中的 tricks 列表不應該用作類變數,因為所有的 Dog 實例將共享同一個列表:
class Dog:
tricks = [] # mistaken use of a class variable
def __init__(self, name):
self.name = name
def add_trick(self, trick):
self.tricks.append(trick)
>>> d = Dog('Fido')
>>> e = Dog('Buddy')
>>> d.add_trick('roll over')
>>> e.add_trick('play dead')
>>> d.tricks # unexpectedly shared by all dogs
['roll over', 'play dead']
這個類的正確設計應該使用一個實例變數:
class Dog:
def __init__(self, name):
self.name = name
self.tricks = [] # creates a new empty list for each dog
def add_trick(self, trick):
self.tricks.append(trick)
>>> d = Dog('Fido')
>>> e = Dog('Buddy')
>>> d.add_trick('roll over')
>>> e.add_trick('play dead')
>>> d.tricks
['roll over']
>>> e.tricks
['play dead']
總結後的知識點希望能幫到你

㈡ python中一個類的方法中怎樣使用另一個類的方法中的一個變數

class a()
def bf(self,event)
name = 'bf'

# 這里的name是局部變數,不是class.a的變數, 當a.bf(event)執行完後就不存在了。
如果希望保持該變數的值在class.a中,:

class a(object):
name = ''
def bf(self, event):
a.name = 'bf'

class b(object):
def exe(self, event):
a.bf(event)
print a.name

㈢ python3.2.3怎麼引用賦值了的變數

先解釋第三行中中括弧。
python的語法裡面,中括弧可以表示index。t[1]
就表示
t
這個
list
的第一項。
再解釋
int

list
變數賦值的問題。
第三行中,l=t[1],意思就是給
t
這個
list
的第一項起了個別名叫做
l。
這就好比給張三起了個名字叫小明,下文里不論提到張三還是小明,說的都是同一個人。
那麼在第四行里
l[0]='d'
其實就等價於
t[1][0]
=
'd',相當於改變了list的內容。
這在編程里叫做aliasing,python

list
都是有aliasing的,但是
int
(整數)沒有。
所以,在第二段中,把
x
放到
m
這個
list
里的時候,只是拷貝進去了一個數值,從此以後和
x
不再有關聯了。
這就好比做了個張三的克隆人,那個克隆人後來怎樣,跟張三都沒什麼關系了。
第15-18行也是一樣的道理。
如果,把那幾行改為a=[4];
b=a;
b[0]=5;
print
a;
這時就會打出5來了。
綜上所述,造成第一段和第二段區別的主要原因就是它們涉及的數據類型不同,list

起別名,
int
=克隆人。

㈣ python如何在一個類中訪問另一個類的變數

1234def aaa(): s = 5 return sprint aaa()
或者:
12345def aaa(): global s s = 5aaa()print s
要在函數外部訪問函數的內部變數,要麼使用return將其返回到外部,要麼用global定義為全局變數。推薦前一種。
def只是定義函數,你還沒有調用和執行該函數。此外,要在控制台輸出,你可以在函數內部寫上print s+3 ,然後調用函數aaa()。

或者定義一個類:
1234class aaa: s = 5b = aaa #初始化一個類的實例print b.s #當然,你也可以直接使用aaa.s

㈤ python如何引用其他模塊中類的方法中的變數

沒法實現。
原因:
你的tmp,只是class a中的一個函數fun內的臨時變數
所以無法直接被外部調用。
並且只有fun函數執行時才存在,函數結束時,就不存在了。

關於變數的作用范圍,你可以參考:
【整理】Python中變數的作用域(variable scope)

想要可以被調用,可以試試:
改為:

#A.py
Class a()
tmp='123'
def fun()
。。。。。。

然後再去:

import A
print A.tmp

注意:
此時,tmp就是class a中的全局變數了。

㈥ python如何在一個模塊中調用另一個模塊中的變數

python在一個模塊中調用另一個模塊中的變數步驟如下:

1、要實現變數的深度拷貝,需要使用到模塊,導入這個模塊。

㈦ Python類方法可以訪問實例變數嗎

不可以。
因為類方法屬於類,調用非static變數需要實例,而類的載入先於實例的創建,故在靜態環境中,不可以訪問非靜態。

㈧ 對python 中class與變數的使用方法詳解

python中的變數定義是很靈活的,很容易搞混淆,特別是對於class的變數的定義,如何定義使用類里的變數是我們維護代碼和保證代碼穩定性的關鍵。

枚舉了各種情況,沒有辦法全部枚舉,但大部分情況應該都已經包含了。

1. 類變數:能夠通過類名或者object的self來訪問到,在類的內部和外部均可達,比如class_var_1

2. 對象變數:可以通過對象的self來使用的變數,通過constructor一路走向去的的self初次被賦值的變數都會成為對象變數,比如object_var_1, object_var_2, object_var_3, object_var_4

3. 內部變數:可以在函數中定義,並加上self前綴,在初次調用過定義的函數後,就可以在後面的對象的函數中被使用,比如internal_var_1

4. 局部變數:在函數內部定義,並使用的變數,在使用完之後就會被回收對類及object不可見

5. 全局變數:定義在類或者函數外部,作用域在變數被定義之後的任意代碼段,比如:global_var_1

㈨ python 類方法中變數如何使用

data=gdal.Open(file_path)

改成 data=gdal.Open(self.file_path)

__init__會初始化實例, self.file_path = fl 是把 fl 的值賦到 實例裡面,你訪問 file_path,這個根本沒定義過,肯定報錯。
抽空補一下基礎吧,還是非常重要的。我現在也還在基礎中掙扎

㈩ Python中的變數引用對象需注意的幾點

給你介紹Python中普通引用和共享引用在引用對象中需要注意的點:

普通引用:

Python中,變數的作用僅僅是一個標識,只有賦值後才被創建,它可以引用任何類型的對象,而且在引用之前必須賦值。賦值後的變數指向響應的對象,擁有該對象的空間。類型屬於對象,但是不是變數。

[python]

view plain

a = 3

a = "science"

上述代碼說明數值3和字元串「science」分別是兩種對象,初始變數a賦值對象3被創建,變數a指向對象3的內存空間,之後變數a又指向了字元串的內存空間。

共享引用:

[python]

view plain

a = 3

b = a

上述代碼說明變數a,b同時引用了對象3,兩個變數引用了相同的對象。正是因為兩者都是指向了相同的對象,所以當其中一個變數引用其他對象的時候,不會對另一個變數造成影響。例如:

[python]

view plain

a = 「science」

在上面代碼的基礎上,變數a引用了字元串對象「science」,此時變數b依舊引用對象3,而不是「science」。

但是有些對象的操作會在原處修改,例如列表。例如:

[python]

view plain

a = [1,2,3]

b = a

變數a,b應用了包含1,2,3對象的列表,自然而然的a[0]引用對象1,如果在變數a中執行操作

[python]

view plain

a[0] = 4

那麼變數b就變隨之變為[4,2,3]。避免這種情況可以使用操作,替換引用操作。

熱點內容
手機怎樣給程序加密軟體 發布:2025-01-12 06:47:11 瀏覽:824
地平線最高畫質筆記本要什麼配置才能玩 發布:2025-01-12 06:47:10 瀏覽:369
原神過主線任務腳本 發布:2025-01-12 06:34:51 瀏覽:514
醫保電子密碼在哪裡找到 發布:2025-01-12 06:34:38 瀏覽:349
安卓手機有網卻不能使用怎麼辦 發布:2025-01-12 06:25:20 瀏覽:213
arm存儲器映射 發布:2025-01-12 06:25:12 瀏覽:250
安卓系統個人字典有什麼用 發布:2025-01-12 06:13:37 瀏覽:929
geventpython安裝 發布:2025-01-12 06:13:34 瀏覽:339
放鬆解壓助睡眠直播 發布:2025-01-12 06:13:00 瀏覽:829
車載wince和安卓哪個好用 發布:2025-01-12 05:58:18 瀏覽:840