python編程基礎之三十三

來源:互聯網
上載者:User

標籤:析構   return   item   def   name   dingding   hide   根據   expand   

構造方法:

  • 目的:構造方法用於初始化對象,可以在構造方法中新增成員屬性

  • 觸發時機:執行個體化對象的時候自動調用

  • 參數:第一個參數必須是self,其它參數根據需要自己定義

  • 傳回值:不傳回值,或者說返回None,不應該返回任何其他值

1 def __init__(self,arg1,arg2....):2         函數體3 #參數:arg1,agr2...根據需要自己定義4 #如果自己不定義構造方法,系統自動產生一個建構函式5 def __init__(self):6   pass
View 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歲了‘ % (dingding.kind, dingding.name, dingding.age))
View Code

析構方法:

  • 目的:對象銷毀時,釋放資源

  • 時機:對象銷毀時由系統自動調用

  • 參數:除了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 = kind 6         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)
View Code

 還介紹一個魔術方法比較常用:__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編程基礎之三十三

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.