python訪問類變數
不可以。
因為類方法屬於類,調用非static變數需要實例,而類的載入先於實例的創建,故在靜態環境中,不可以訪問非靜態。
⑵ 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的子類怎麼訪問父類的成員變數
首先當子類繼承了父類,因此子類(當繼承方式為public或
protected
時)可以訪問及改動父類的public成員,但訪問或改不了私有成員和不可訪問變數
⑸ Python中的類變數、實例變數、局部變數
類體內,所有函數外定義。
所有實例對象共享。
只有通過類名調用時才能修改,通過實例調用時無法修改。
假設某類變數名為「name",如果用該類的某個實例x來為name賦值:x.name = 'xxx',實質是為該實例新定義了一個變數name。且之後無法再通過該實例調用類變數name了。因為使用實例調用某名為「xxx」變數時,若該實例沒有名為「xxx」的實例變數,則會去調用名為「xxx」的類變數;若有該名稱的實例變數,則該實例無法再直接調用該名稱對應的類變數。因此也不推薦通過實例來調用類變數。
即:通過類實例修改類變數的值時,實際是在定義新的與類變數同名的實例變數。
類體內,某函數(一般是__ init __ ())內定義。 「self.變數名」
因為是屬於某個具體實例的,因此不能通過類名訪問。
如果不在__ init __ () 中調用(該函數會在創建實例時自動調用一次),則只有調用該實例中定義目標實例變數的那個函數後,才能使用目標實例變數。因此最好在__ init __ () 中定義實例變數。
類體內,某函數內定義。
直接在函數內用「變數名=值」的方式進行定義。
函數執行完畢後,該局部變數即被銷毀。