python類變數訪問
發布時間: 2024-03-21 20:56:49
classStudent(object):
def__init__(self,name,score):
self.__name=name;
self.__score=score;
self.__grade=3;##這是私有的屬性
self.grade=3;##這是公有的。
defshow_grade(self):
print("%s__grade=%d"%(self.__name,self.__grade));
print("%sgrade=%d"%(self.__name,self.grade));
lisa=Student("lisa",88);
mona=Student("mona",82);
defset_grade(self,grade):
self.__grade=grade;##實測發現,此函數調用後__grade還是原值。__grade是私有變數。只能被class里的「靜態方法」來修改。
self.grade=grade;##此函數調用後,grade的值被修改了。grade是公開變數。可以被動態方法來修改。
#print("%sgradeis%d"%(self.__name,self.grade));#在這里訪問不到self.__name,所以把此句注釋掉了。
Student.setGrade=set_grade;
lisa.setGrade(4);
lisa.show_grade();
結果如下:
lisa__grade=3
lisagrade=4
結論:
為類動態增加的方法,對類里私有屬性沒有讀與寫的許可權。
B. python類的全局變數
全局變數,是一個相對的概念,對於整個程序而言,有可以在整個程序的任何代碼塊中都能被訪問的變數,被稱作全局變數。也有在類中能夠被該類的任何代碼塊都能訪問到的變數,也被稱作全局變數。所以這里是一個相對的概念。代碼定義的fly變數以及構造方法中的long變數都是全局變數,因為在long之前加了一個self的前綴,所有在整個類中,該long變數也是全局變數,至少在該類中的任何地方都可以訪問到該變數。全局變數被當做類的一個屬性來存儲,所以可以說直接通過.的訪問方式直接訪問,訪問如下:
class G():
fly = False #類中的全局變數
def __init__(self):
selg._age = 1 #加一個下劃線,是一種不成文的規定,意思是該變數是私有變數
self.long = 2 #普通變數
self.__width = 3 #有兩個下劃線,是一種「真」私有變數
def run(self):
r = 4 #局部變數
print("I am running!.")
C. python的子類怎麼訪問父類的成員變數
首先當子類繼承了父類,因此子類(當繼承方式為public或
protected
時)可以訪問及改動父類的public成員,但訪問或改不了私有成員和不可訪問變數
D. python 怎麼查看數據類型
調試的時候可以看到,自己賦值的時候也可以
E. Python類方法可以訪問實例變數嗎
不可以。
因為類方法屬於類,調用非static變數需要實例,而類的載入先於實例的創建,故在靜態環境中,不可以訪問非靜態。
熱點內容