80070583類不存在_py類變數與成員變數
阿新 • • 發佈:2021-01-04
技術標籤:80070583類不存在
python類變數與成員變數_LDC,wx_公眾號【輕鬆學程式設計】-CSDN部落格blog.csdn.net在類中宣告的變數我們稱之為類變數【靜態成員變數】, 在__init__()函式中宣告的變數,我們稱之為成員變數。 類的變數 由一個類的所有物件共享使用。只有一個類變數的拷貝 物件的變數 由類的每個物件/例項擁有。因此每個物件有自己對這個域的一份拷貝,即它們不是共享 類變數直接可以通過類名來呼叫。 1、若類變數與成員同時存在並且同名,使用物件來呼叫的時候, 獲取的結果是成員變數的值,使用類名來呼叫,獲取的是類變數的值。 2、若類變數存在,成員變數不存在, 使用物件來呼叫的時候,它首先尋找成員變數,如果成員變數不存在。則去尋找類變數。 3、若類變數不存在,成員變數存在:使用類名來呼叫,則會報錯 4、通過物件來修改類屬性的時候,只能作用到物件自己本身,作用不到類, 通過類名來修改類屬性,則只對類變數的值進行修改
class Person(object): # 類變數 name = "haha" age = "19" height = 170 def __init__(self,name,age,weight): # 成員變數 self.name = name self.age = age self.weight = weight def sayHeight(self): print(self.height) per = Person("xiaoming",19,50) print(per.name) # xiaoming print(Person.name) # haha #print(Person.weight) # 報錯 per.height = 190 print(per.height) # 190 print(Person.height) # 170 print('*********') Person.height = 200 print(Person.height) # 200 print(per.height) # 190 per.sayHeight() # 190 #---------------------------------------------------------------------- class Person: population = 0 # 類變數 def __init__(self, name): self.name = name # 成員的變數 print('(Initializing %s)' % self.name) # When this person is created, he/she adds to the population Person.population += 1 def sayHi(self): print('Hi, my name is %s.' % self.name) def howMany(self): if Person.population == 1: print('I am the only person here.') else: print('We have %d persons here.' % Person.population) swaroop = Person('Swaroop') swaroop.sayHi() swaroop.howMany() kalam = Person('Abdul Kalam') kalam.sayHi() kalam.howMany() swaroop.sayHi() swaroop.howMany()