当我在Python或IPython控制台中时,我返回输出时调用了什么?

例如,

python
>> x = 1
>> x
1

我很好奇x上的方法/函数返回1.我在问,因为我看到调用print x和简单的x之间的区别。

相似,有没有办法指定所谓的? 这个配置是否存在于IPython中?


当您在REPL中以这种方式检查对象时,它会调用该对象的__repr__方法。 相比之下, print使用对象的__str__方法。 例:

>>> class Widget:
...     def __repr__(self):
...             return "repr of a Widget"
...     def __str__(self):
...             return "str of a Widget"
...
>>> x = Widget()
>>> x
repr of a Widget
>>> print x
str of a Widget
>>> print [x,2,3]
[repr of a Widget, 2, 3]
>>> print repr(x)
repr of a Widget
>>> print str(x)
str of a Widget

为自己的类定义__repr____str__ ,请尝试遵循文档的建议,即关于哪一个应该更详细和“官方”。

[ __repr__计算]对象的“官方”字符串表示形式。 如果可能的话,这应该看起来像一个有效的Python表达式,可用于重新创建具有相同值的对象(给定适当的环境)。
...
[ __str__计算]对象的“非正式”字符串表示形式。 这与__repr__()不同之处在于,它不一定是有效的Python表达式:可以使用更方便或简洁的表示。

链接地址: http://www.djcxy.com/p/4851.html

上一篇: When I am in the Python or IPython console, what is called when I am returned an output?

下一篇: Python