Python 交互式 shell:当我简单地键入对象名称时,我怎么知道使用什么方法?



当它是字符串或数字时很清楚,则打印各自的

A="这是一个字符串">
B=3

A
this is a string
B
3

如果我有更复杂的对象怎么办?我问是因为我正在学习一个模块和

A.name 
B.name 

结果在一行中(实际上覆盖了之前的输入( 而

print (A.name)
print (B.name)

两行中的 resutl(正常行为(

如果您只是将对象放入控制台,则将调用__repr__方法,您将看到该方法返回的任何内容。打印显式使用__str__. 如果没有__str__print会回退到__repr__

演示:

>>> class A:
...     def __repr__(self):
...         return '__repr__'
...     def __str__(self):
...         return '__str__'
... 
>>> a = A()
>>> a
__repr__
>>> print(a)
__str__
>>> del A.__str__
>>> a
__repr__
>>> print(a)
__repr__
>>> del A.__repr__
>>> a
<__main__.A object at 0x7f4bdf0034a8>
>>> print(a)
<__main__.A object at 0x7f4bdf0034a8>

最新更新