命令行接口- python类似cli的变量转储



当我在交互式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和交互提示符用来显示对象的"表示"。

最新更新