如何解决为什么 print(eval(repr(instance))) 调用 str 函数而不是 repr 函数?
在下面的代码块中,为什么语句 print(new) 调用 str 函数而不是调用 repr 函数。是不是因为调用了打印函数?
class Robot:
def __init__(self,name,build_year):
self.name = name
self.build_year = build_year
def __repr__(self):
return "Robot('" + self.name + "'," + str(self.build_year) + ")"
def __str__(self):
return "Name: " + self.name + ",Build Year: " + str(self.build_year)
if __name__ == "__main__":
x = Robot("Marvin",1979)
print(str(x))
print(x)
print(repr(x))
new = eval(repr(x))
print(new)
answer is
Name: Marvin,Build Year: 1979
Name: Marvin,Build Year: 1979
Robot('Marvin',1979)
Name: Marvin,Build Year: 1979
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。