1. 程式人生 > >python 3 __str__魔法方法總結

python 3 __str__魔法方法總結

Python3中只要類中的方法名格式為:__方法名__ 都是為特殊的方法,可以稱為"魔法"方法

當我們在程式碼中呼叫了print(類),就會呼叫__str__方法裡面的值

注意該函式必須有返回值,為字串形式

例如如下程式碼:

  1. class Cat:

  2. """定義一個Cat類"""

  3. #初始化物件

  4. def __init__(self,new_name,new_age):

  5. self.name = new_name

  6. self.name = new_age

  7. def __str__(self):

  8. return "%s的年齡是:%d"%(self.name,self.age)

  9. #方法

  10. def eat(self):

  11. print("%s正在吃東西......"%self.name)

  12. def drink(self):

  13. print("%s正在喝飲料......"%self.name)

  14. def sleep(self):

  15. print("%s正在睡覺覺......"%self.name)

  16. tom = Cat("湯姆",40)

  17. lanmao = Cat("藍貓",10)

  18. print(tom)

  19. print(lanmao)

執行結果:

  1. 湯姆的年齡是:40

  2. 藍貓的年齡是:10

當我們將__str__方法註釋後,再執行程式碼對比下輸出內容如下:

  1. <__main__.Cat object at 0x7fbc0ca62198>

  2. <__main__.Cat object at 0x7fbc0ca62240>

列印的是系統預設的表達格式.

總結:

當我們在呼叫print(類)時,系統會先查詢__str__或者__repr__方法,如果有這兩種方法的一個,則列印方法返回的值.