【发布时间】:2017-05-18 03:24:50
【问题描述】:
默认情况下,当 IPython 显示一个对象时,它似乎使用__repr__。
__repr__ 应该产生一个唯一的字符串,该字符串可用于在正确的环境下重建对象。
这与 __str__ 不同,后者应该产生人类可读的输出。
现在假设我们已经编写了一个特定的类,并且我们希望 IPython 在默认情况下生成人类可读的输出(即不显式调用 print 或 __str__)。
我们不想让我们班的__repr__ 做__str__ 的工作来蒙混过关。
那是违反规则的。
有没有办法告诉 IPython 默认为特定类调用 __str__?
【问题讨论】:
-
据我所知,“通常”的解决方案是写一个奇怪的
__repr__。例如,Pandas 数据框就是这样做的。 -
@user2357112 Awww :-(