假设我有以下代码:
class PrintStuff:
def __init__(self,stuff):
self._stuff = stuff
def __str__(self):
return self._stuff
如果我在ipython中创建一个实例并键入实例的名称,它会打印出类的名称和它在内存中的位置。但是,如果我将实例放入print函数,它会按预期输出:
pstuff = PrintStuff('print this stuff')
pstuff
Out[44]: <__main__.PrintStuff at 0x7fae0531de80>
print(pstuff)
print this stuff
我该如何使ipython控制台打印出与print函数相同的内容呢?例如,熊猫系列有我想要的行为类型:
series = pd.Series({'x':[1,2],'y':[2,3],'z':[3,4]})
series
Out[47]:
x [1, 2]
y [2, 3]
z [3, 4]
dtype: object
print(series)
x [1, 2]
y [2, 3]
z [3, 4]
dtype: object
您需要添加
__repr__
:默认情况下,对象
__repr__
返回类型和内存地址,这是控制台输出时看到的(例如):<__main__.PrintStuff at 0x7fae0531de80>
重载
__repr__
之后,您可以控制输出是什么输出:
相关问题 更多 >
编程相关推荐