標籤:對象 參數 nbsp span 報錯 資料 python 關閉 size
1 class Dog(object): 2 n=123 3 name=‘類變數name‘ 4 n_list=[] 5 6 def __init__(self,name,life_value=100): #傳參數 7 self.name=name 8 self.__life_value=life_value 9 10 def __del__(self):11 print("%s dead"% self.name)12 13 def show_status(self):14 print("test 私人變數調用 name:%s,life_value:%s" %(self.name,self.__life_value))15 16 def bulk(self):17 print("%s is wang wang wang" % self.name)18 19 d1=Dog("huanhuan") 20 d1.bulk()21 print("d1:",d1.name,d1.n)22 d1.n_list.append(‘d1,‘) 23 d1.wierd=True #增24 print("d1:",d1.name,d1.n,d1.n_list,d1.wierd)25 d1.show_status()26 del d1.n #刪27 28 del d1 29 30 d2=Dog(‘lele‘)31 d2.n_list.append(‘d2,‘)32 print("d2:",d2.name,d2.n,d2.n_list)33 34 print("Dog:",Dog.name,Dog.n,Dog.n_list)
建構函式:執行個體化過程中做一些初始化的工作,傳參。
def __init__(self,name,life_value=100): #傳參數 7 self.name=name 8 self.__life_value=life_value
調用:d1=Dog(‘huanhuan‘)
展開來看:
d1.name=‘huanhuan‘
d1.__life_value=100
解構函式:在執行個體釋放、撤銷時,做收尾工作,如斷開資料庫連接,關閉已開啟的臨時檔案
def __del__(self):11 print("%s dead"% self.name)
28 del d1 #刪除d1執行個體,(門派號沒了,房子可以拆了),銷毀對象,執行解構函式
而程式中沒有寫del d2,所以d2對象解構函式的調用是在整個程式結束時。
私人屬性、私人方法:外部不能直接調用,必須通過類的其他方法才能調用。
8 self.__life_value=life_value (前面有__)
調用:
13 def show_status(self):14 print("test 私人變數調用 name:%s,life_value:%s" %(self.name,)
不能直接在外部print(self.__life_value)會報錯
#私人方法
def __sleep(self): print(‘私人方法:%s is sleeping‘ %self.name)#調用私人方法 def show_status(self): self.__sleep()
python物件導向