为了账号安全,请及时绑定邮箱和手机立即绑定

既然python都原配__str()__和__repr__()两种方法了,为啥还要自己在类的下面重新定义一遍__str()__和__repr__()?

这是因为 Python 定义了__str()__和__repr__()两种方法,__str()__用于显示给用户,而__repr__()用于显示给开发人员,当使用str()时,实际调用的是__str__()方法,而直接输入变量,调用的是__repr__()方法。


既然python都原配__str()__和__repr__()两种方法了,为啥还要自己在Person类的下面重新定义一遍__str()__和__repr__()?

这节课整个没看懂......?


__str()__用于显示给用户,而__repr__()用于显示给开发人员

是指str这个方法,python允许用户用?而repr只能开发人员用?

还是说str的结果反馈到用户桌面?而repr的结果只有原开发者能看到?

哎..不懂..


正在回答

1 回答

在自己自定义的类中的这两个方法继承自Object类,可能不符合自己的需求(比如说输出太难读了)。所以需要在自己的类中重写这两个方法,覆盖继承的这两个方法,执行新的功能。(在Python的内建数据类型(字符串,整型等)中应该已经重写过这个方法了)

str和repr用户和开发者都可以使用,结果均打印在命令行中。区别在于这两个的函数的作用的定义,str注重用户的可读性(在某些应用里可能会输出图表之类的?),repr注重开发和调试期间的使用(课程中说:”在终端(Terminal)中直接输入变量的时候“,用户不太用直接使用终端编写程序),因此repr可能还会额外输出一些比如说对象的类名之类的信息吧。

以上是我的理解,可能没有特别准确,希望你觉得还行哈

3 回复 有任何疑惑可以回复我~
#1

葡萄葡萄 提问者

感谢感谢!!!非常详细~让我比之前清楚多了
2020-10-22 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

既然python都原配__str()__和__repr__()两种方法了,为啥还要自己在类的下面重新定义一遍__str()__和__repr__()?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信