Python中__str__和__repr__有什么区别?

内置的功能repr()str()分别调用对象.__再版__(个体)和对象.__ STR __(个体)的方法。第一个函数计算对象的正式表示形式,第二个函数返回对象的非正式表示形式。

对于整数对象,两个函数的结果相同。

>>> x = 1 

>>> repr(x)

'1'

>>> str(x)

'1'

但是,字符串对象不是这种情况。

>>> x = "Hello"

>>> repr(x)

"'Hello'"

>>> str(x)

'Hello'

repr()字符串对象的返回值可以通过eval()函数求值并得出有效的字符串对象。但是,str()无法评估的结果。

>>> y1 = repr(x)

>>> eval(y1)

'Hello'

>>> y2 = str(x)

>>> eval(y2)

NameError: name 'Hello' is not defined

总结一下。repr()返回对象的默认且明确的表示形式,其中str()给出的非正式表示形式可能是可读的,但不一定总是明确的。

以上是 Python中__str__和__repr__有什么区别? 的全部内容, 来源链接: utcz.com/z/350241.html

回到顶部