Python3中__str__ "魔法"方法理解
阿新 • • 發佈:2019-01-05
Python3中只要類中的方法名格式為:__方法名__ 都是為特殊的方法,可以稱為"魔法"方法
當我們在程式碼中呼叫了print(類),就會呼叫__str__方法裡面的值
例如如下程式碼:
class Cat: """定義一個Cat類""" #初始化物件 def __init__(self,new_name,new_age): self.name = new_name self.name = new_age def __str__(self): return "%s的年齡是:%d"%(self.name,self.age) #方法 def eat(self): print("%s正在吃東西......"%self.name) def drink(self): print("%s正在喝飲料......"%self.name) def sleep(self): print("%s正在睡覺覺......"%self.name) tom = Cat("湯姆",40) lanmao = Cat("藍貓",10) print(tom) print(lanmao)
執行結果:
湯姆的年齡是:40
藍貓的年齡是:10
當我們將__str__方法註釋後,再執行程式碼對比下輸出內容如下:
<__main__.Cat object at 0x7fbc0ca62198>
<__main__.Cat object at 0x7fbc0ca62240>
列印的是系統預設的表達格式.
總結:
當我們在呼叫print(類)時,系統會先查詢__str__或者__repr__方法,如果有這兩種方法的一個,則列印方法返回的值.