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

有没有定义__repr__在终端有什么区别吗?

为什么在python3 中直接输入变量p 不会有<main.person object at 0x10c941890>这样的显示?
还有是否有定义__repr__ = __str__ 在终端print 会有什么区别?


正在回答

1 回答

>>> class Person(object):

...     def __init__(self):

...             self.name = 'wml'

...

...

>>> p = Person()

>>> p

<__main__.Person object at 0x000001A974C674E0>

>>>

这是在python3.7环境下试的,你看看你是不是类定义有问题,或者用isinstance()函数测试一下p是不是一个对象。

------------------------------------------------------------------------

__str__():显示给用户

__repr__():显示给开发人员

这是我做的笔记,第一个就是print p的输出

第二个是直接输入p的输出 

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

有没有定义__repr__在终端有什么区别吗?

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