python編程基礎之三十三
阿新 • • 發佈:2018-08-10
對象屬性 ide () -- 技術分享 con gdi 地址 end
構造方法:
-
-
觸發時機:實例化對象的時候自動調用
-
參數:第一個參數必須是self,其它參數根據需要自己定義
-
返回值:不返回值,或者說返回None,不應該返回任何其他值
1 def __init__(self,arg1,arg2....): 2 函數體 3 #參數:arg1,agr2...根據需要自己定義 4 #如果自己不定義構造方法,系統自動生成一個構造函數 5 def __init__(self): 6 passView Code
如果自己沒有寫構造方法,系統會自動生成一個構造方法,裏面除了self,沒有任何參數,
1 class Dog(object): 2 def __init__(self,name,kind,age): 3 self.name = name #定義對象屬性,這個類所有的對象都具有該屬性 4 self.kind = kind #成員屬性必須通過self.引用,否則是普通變量 5 self.age = age 6 7 def bark(tmp): 8 print(‘我是小可愛‘) 9 10 dingding = Dog(‘大黃‘,‘泰迪‘,3) 11 print(‘我是可愛的%s犬,%s,我今年%d歲了View Code‘ % (dingding.kind, dingding.name, dingding.age))
析構方法:
-
-
時機:對象銷毀時由系統自動調用
-
參數:除了self外,沒有其他參數
-
返回值:不返回值,或者說返回None。
1 def __del__(self): 2 #to do
1 class Dog(object): 2 #構造 3 def __init__(self,name,kind,age): 4 self.name = name 5 self.kind = kindView Code6 self.age = age 7 #析構 8 def __del__(self): 9 print(‘拜拜了,二十年後又是一條好漢‘) 10 def bark(tmp): 11 print(‘我是小可愛--丁丁‘) 12 13 dingding = Dog(‘丁丁‘,‘泰迪‘,3) 14 print(‘我是可愛的%s犬,%s,我今年%d歲了‘ % (dingding.kind, dingding.name, dingding.age)) 15 del dingding #銷毀對象,自動調用析構方法 16 17 #在函數中對象,當函數結束運行時,自動析構 18 def test(): 19 td = Dog(‘當當‘,‘泰迪‘,3)
還介紹一個魔術方法比較常用:__str__()
這個魔術方法可以讓你定義的對象輸出的時候不會是一個地址了,看到的可以是你希望看到的字符串,
-
-
時機:凡是涉及對象向字符串轉換的都會調用
-
參數:self
-
返回值:字符串
1 class Animal: 2 def __init__(self,name,age): 3 self.name = name 4 self.__age =age 5 def __str__(self): 6 return "name : {} age : {}".format(self.name,self.__age) 7 def __repr__(self): 8 return self.__str__() 9 a1 = Animal(‘zhu‘,3) 10 print(a1) 11 print(‘我是一頭可愛的 ‘ + str(a1)__str__()
python編程基礎之三十三