3 案例3:出版商程序
3.1 问题
创建books.py文件,实现以下目标:
为出版商编写一个Book类
Book类有书名、作者、页数等属性
打印实例时,输出书名
调用实例时,显示该书由哪个作者编写
3.2 方案
创建一个类,类中创建3种魔法方法:
1.__init__方法:__init__方法用于初始化实例属性,创建对象后会自动调用__init__方法,属于构造器方法,此处初始化了书名及作者两个属性
2.__str__方法:创建对象后,打印实例对象pybook,返回书名,打印出书名
3.__call__方法:创建对象后,可以像调用函数一样调用该方法,模拟函数的行为,打印出书名及作者
3.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 '' % 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
《Core Python》 is written by Weysley.