我注意到,当一个带有重载__str__方法的实例print作为参数传递给函数时,它会按预期打印.但是,在将包含其中一个实例的容器传递给print它时,它会使用该__repr__方法.也就是说,print(x)显示正确的字符串表示x,并且print(x, y)正确地工作,但是print([x])或者print((x, y))打印__repr__表示.
__str__
print
__repr__
print(x)
x
print(x, y)
print([x])
print((x, y))
首先,为什么会发生这种情况?其次,有没有办法纠正print这种情况下的行为?
python operator-overloading
operator-overloading ×1
python ×1