【发布时间】:2018-06-28 09:09:02
【问题描述】:
所以昨天我尝试在我的代码中使用 repr 和 str 来打印列表中的对象。这里只是我遇到同样问题的小示例代码。
class Something:
def __init__(self):
pass
def __repr__(self):
return "I want this out"
def __str__(self):
return "this comes out"
def main():
k = Something()
k
print(k)
main()
打印的内容:
这就出来了
进程以退出代码 0 结束
为什么我不能从我的对象中取出 repr,即使我在调用对象时给了它返回行?
【问题讨论】:
-
您可以
inspectwho the caller was 并相应地进行调整 -
你总是可以写 str 来返回 repr..
def __str__(self): return self.__repr__() -
@Magnus 我认为 OP 想要根据调用的方法不同的输出
-
查看此链接:pythoncentral.io/what-is-the-difference-between-str-and-repr-in-python/
-
带有
k的行本身不会调用repr;只有从 REPL 直接执行的表达式语句才会这样做。