python str repr方法区别
在设计类时,__str__
方法的返回值会被预先为用户友好型字符串,__repr
方法的返回值会被预先定义为“含有相关有效信息”的字符串,比如
a = 'abc'
print(str(a)) # 输出 abc
print(repr(a)) # 输出'abc'
同样是打印,第二种打印方式就明确地表达了a
是一个字符串。
另外,我认为比较重要的知识点是:print
语句默认调用对象的__str__
方法。如果一个对象不含有__str__
,才会去调用__repr__
。
class Mine:
def __str__(self):
return('str')
def __repr__(self):
return('repr')
a = Mine()
print(a) # 输出 str
但如果把上述代码中的__str__
方法删除,print
语句就会输出repr
。