1. class 的使用和定義
#!/usr/bin/python3 class JustCounter: __secretCount = 0 # 私有變數 publicCount = 0 # 公開變數 def count(self): self.__secretCount += 1 self.publicCount += 1 print (self.__secretCount) counter = JustCounter() counter.count() counter.count() print (counter.publicCount) print (counter.__secretCount) # 報錯,例項不能訪問私有變數
$ ./1_class.py 1 2 2 Traceback (most recent call last): File "./1_class.py", line 16, in <module> print (counter.__secretCount) # 報錯,例項不能訪問私有變數 AttributeError: 'JustCounter' object has no attribute '__secretCount'
2. 使用__init__() 為物件設定初始值
#!/usr/bin/python3 #類定義 class people: #定義基本屬性,這裡可以省略,在__init__()中全部賦值就可以 name = '' age = 0 #定義私有屬性,私有屬性在類外部無法直接進行訪問 __weight = 0 #定義構造方法 def __init__(self,n,a,w): self.name = n self.age = a self.__weight = w def speak(self): print("%s 說: 我 %d 歲。" %(self.name,self.age)) # 例項化類 p = people('wwj',10,30) p.speak() #類外訪問類的資料,不能訪問p.__weight print("name:%s, age:%d" %(p.name, p.age)) #print("weight:%d" %(p.__weight))
$ ./class_test.py wwj 說: 我 10 歲。 name:wwj, age:10
繼承
#單繼承示例 class student(people): grade = '' def __init__(self,n,a,w,g): #呼叫父類的構函 people.__init__(self,n,a,w) self.grade = g #覆寫父類的方法 def speak(self): print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade)) s = student('ken',10,60,3) s.speak()