当我在交互式shell中使用python时,我可以通过调用它们的名称轻松地转储变量。
>>> x = b'xA5'
>>> x
'xa5'
>>> print x
▒
可以看出,该行为与print
的行为不同。如何在普通脚本中模拟这种类似cli的变量转储?
使用repr()
内置功能:
>>> x = 'xa5'
>>> print repr(x)
'xa5'
>>> x = b'xA5'
>>> print repr(x)
'xa5'
每个类都可以使用__repr__
特殊方法特殊化它们的表示。
例如:
>>> class Banana:
... def __repr__(self):
... return "Fruit: Banana"
...
>>> Banana()
Fruit: Banana
应该注意的是,如果您返回的不是字符串,交互提示符会变得非常暴躁(Python一般也是如此)。
如果可能的话,它还应该表示一个有效的Python表达式。所以我的例子不符合。如果无法使用有效的表达式,则推荐使用<something descriptive>
。如果你得到一个类的表示,你可以在实践中看到一个这样的例子:
>>> Banana
<class '__main__.Banana'>
这个特殊的方法是repr
和交互提示符用来显示对象的"表示"。