python 3 __str__魔法方法總結
阿新 • • 發佈:2018-12-10
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__方法,如果有這兩種方法的一個,則列印方法返回的值.