课程
/后端开发
/Python
/python进阶
__repr__ = __str__
2017-09-12
源自:python进阶 6-5
正在回答
__str__()和__repr__()指向同一方法,
重构__str__(),用print输出的信息时采用__str__中定义的格式输出,直接输出对象是则显示的是实例的内存。
重构__repr__(),不管直接输出对象还是通过print打印的信息都按我们__repr__方法中定义的格式进行显示。
因为 Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。
现在,假设我们有实例a,如果使用print a,则调用的是__str__(),那没问题。而如果直接使用a来打印实例信息,则会调用__repr__()。由于我们已经定义了__str__(),__repr__()内部具体实现和它是一样的,因此可以直接用__repr__ = __str__来表述,所以很明白了,Python的方法和变量一样,可以直接用“=”来赋值。
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号