分享

Python基础语法学习(第三讲)

 静知行 2020-03-18

新语法知识:__str__(self)

解释一下:只要在类中定义了__str__(self)方法,那么当使用print打印实例对象的时候,就会直接打印出在这个方法中return的数据。

来个代码解释一下:

  1. class Book:
  2. def __init__(self, name, author, comment, state = 0):
  3. self.name = name
  4. self.author = author
  5. self.comment = comment
  6. self.state = state
  7. def show_info(self):
  8. if self.state == 0:
  9. status = '未借出'
  10. else:
  11. status = '已借出'
  12. return '名称:《%s》 作者:%s 推荐语:%s\n状态:%s ' % (self.name, self.author, self.comment, status)
  13. book1 = Book('像自由一样美丽', '林达', '你要用光明来定义黑暗,用黑暗来定义光明')
  14. # 传入参数,创建实例
  15. print(book1.show_info())
  16. #调用实例方法show_info(),打印出返回值

如果你把这里的show_info改成__str__(self)后,代码是这样的:

  1. class Book:
  2. def __init__(self, name, author, comment, state = 0):
  3. self.name = name
  4. self.author = author
  5. self.comment = comment
  6. self.state = state
  7. def __str__(self):
  8. if self.state == 0:
  9. status = '未借出'
  10. else:
  11. status = '已借出'
  12. return '名称:《%s》 作者:%s 推荐语:%s\n状态:%s ' % (self.name, self.author, self.comment, status)
  13. book1 = Book('像自由一样美丽','林达','你要用光明来定义黑暗,用黑暗来定义光明')
  14. # 传入参数,创建实例对象
  15. print(book1)
  16. # 直接打印对象即可,不能写成print(book1.__str__())

这就是这个方法的好处,你可以利用这个方法的返回值直接打印对象。

后面还会更新作业报错的问题,时间不够23333我晚上再说

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多