2.1 問題
創建books.py文件,實現以下目標:
爲出版商編寫一個Book類
Book類有書名、作者、頁數等屬性
打印實例時,輸出書名
調用實例時,顯示該書由哪個作者編寫
2.2 方案
創建一個類,類中創建3種魔法方法:
1.__init__方法:__init__方法用於初始化實例屬性,創建對象後會自動調用__init__方法,屬於構造器方法,此處初始化了書名及作者兩個屬性
2.__str__方法:創建對象後,打印實例對象pybook,返回書名,打印出書名
3.__call__方法:創建對象後,可以像調用函數一樣調用該方法,模擬函數的行爲,打印出書名及作者
2.3 步驟
實現此案例需要按照如下步驟進行。
步驟一:編寫腳本
[root@localhost day07] # vim books.py
#!/usr/bin/env python3
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def __str__(self):
return '<Book: %s>' % self.title
def __call__(self):
print('《%s》 is written by %s.' % (self.title, self.author))
if __name__ == '__main__':
pybook = Book('Core Python', 'Weysley')
print(pybook) # 調用__str__
pybook() # 調用__call__
步驟二:測試腳本執行
[root@localhost day07]# python3 books.py
<Book: Core Python>
《Core Python》 is written by Weysley.