python中的__str__()
和str()
方法之间有什么区别?
答案 0 :(得分:2)
__str__
(通常读取dunder,for double under)是一个实例方法,只要您运行str(<object>)
并返回对象的字符串表示形式,就会调用该方法。
str(foo)
充当尝试将foo
转换为字符串的函数。
注意:强>
还有__repr__()
方法与__str__()
非常相似,主要区别为__repr__
应返回明确的字符串,__str__
用于可读字符串。为了对两者之间的差异做出很好的回应,我建议给this answer一个读数。
答案 1 :(得分:0)
__str__()
是一个神奇的实例方法,用于执行此操作:当您使用print()
打印类实例变量时,它将为您提供一个字符串,可以通过更改{{中返回的字符串来修改该字符串1}}方法。可能有一个更好的解释,但我可以告诉你代码:
__str__()
<强>输出:强>
class Thing:
def __init__(self):
pass
def __str__(self):
return "What do you want?" #always use return
a = Thing()
print(a)
What do you want?
只是将变量转换为字符串类型变量。
str()
<强>输出:强>
print(str(12.0))
您可以使用'12.0'
函数确认它是一个字符串。
type()
我不知道确切的输出结果,但它中只有print(type(str(12.)))
。