1. 程式人生 > >Python3中__str__ "魔法"方法理解

Python3中__str__ "魔法"方法理解

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__方法,如果有這兩種方法的一個,則列印方法返回的值.

                                                                                                                                                                                                                                                                                --KAI