一歉胶、類的特殊方法:
- 在 Python 中,所有以 “__” 雙下劃線包起來的方法状知,都統(tǒng)稱為 “Magic Method”(魔術(shù)方法)
- 如果對(duì)象實(shí)現(xiàn)了這些魔法方法中的某一個(gè)采转,那么這個(gè)方法就會(huì)在特殊的情況下被 Python 所調(diào)用
方法名 |
說明 |
__ init __ () |
初始化(給對(duì)象添加屬性以及屬性值) |
__ str __ () |
返回字符串類型,直接打印對(duì)象顯示的字符串內(nèi)容 |
__ call __ () |
當(dāng)對(duì)象檔次函數(shù)調(diào)用時(shí)執(zhí)行的邏輯 |
二撰糠、調(diào)用使用示例:
# 創(chuàng)建新的python文件books.py酥馍,魔法方法 __str__,__call__方法的使用
class Book: #創(chuàng)建類Book, 定義魔法方法阅酪,實(shí)現(xiàn)對(duì)書籍信息的打印
def __init__(self, title, author): #定義__init__方法旨袒,獲取書籍的信息【默認(rèn)自動(dòng)調(diào)用】
self.title = title
self.author = author
def __str__(self): #定義__str__方法, 必須返回一個(gè)字符串
return f "書名是:{self.tilte}"
def __call__(self): #用于創(chuàng)建可調(diào)用的實(shí)例,直接作為方法調(diào)用
print(f"{self.tile}是{self.author}編寫的")
if __name__ == '__main__':
pybook = Book('Python核心編程', '韋斯利') # 抽象出對(duì)象pybook
print(pybook) # 調(diào)用__str__方法,打印書名
pybook() # 調(diào)用實(shí)例术辐,默認(rèn)調(diào)用__call__方法