【写在前面】今天是项目实战讲解,这里有一个新的语法知识,今天是讲解新的语法知识,别的不再赘述。
新语法知识:__str__(self)
解释一下:只要在类中定义了__str__(self)
方法,那么当使用print
打印实例对象的时候,就会直接打印出在这个方法中return
的数据。
来个代码解释一下:
class Book:
def __init__(self, name, author, comment, state = 0):
self.name = name
self.author = author
self.comment = comment
self.state = state
def show_info(self):
if self.state == 0:
status = '未借出'
else:
status = '已借出'
return '名称:《%s》 作者:%s 推荐语:%s\n状态:%s ' % (self.name, self.author, self.comment, status)
book1 = Book('像自由一样美丽', '林达', '你要用光明来定义黑暗,用黑暗来定义光明')
# 传入参数,创建实例
print(book1.show_info())
#调用实例方法show_info(),打印出返回值
如果你把这里的show_info改成__str__(self)后,代码是这样的:
class Book:
def __init__(self, name, author, comment, state = 0):
self.name = name
self.author = author
self.comment = comment
self.state = state
def __str__(self):
if self.state == 0:
status = '未借出'
else:
status = '已借出'
return '名称:《%s》 作者:%s 推荐语:%s\n状态:%s ' % (self.name, self.author, self.comment, status)
book1 = Book('像自由一样美丽','林达','你要用光明来定义黑暗,用黑暗来定义光明')
# 传入参数,创建实例对象
print(book1)
# 直接打印对象即可,不能写成print(book1.__str__())
这就是这个方法的好处,你可以利用这个方法的返回值直接打印对象。
后面还会更新作业报错的问题,时间不够23333我晚上再说