我们先看下面三段代码:
class Foo(object):
def __repr__(self):
return '__repr__'
def main():
a = Foo()
print(a)
if __name__ == '__main__':
main()
输出结果:
__repr__
class Foo(object):
def __str__(self):
return '__str__'
def main():
a = Foo()
print(a)
if __name__ == '__main__':
main()
输出结果:
__str__
class Foo(object):
def __str__(self):
return '__str__'
def __repr__(self):
return '__repr__'
# 同时定义的时候返回的是__str__定义
def main():
a = Foo()
print(a)
if __name__ == '__main__':
main()
输出结果:
__str__
再看看下面的代码你就知道__str__
与__repr__
的区别:
>>> class Foo(object):
>
def __str__(self):
return '__str__'
>>> a = Foo()
>>> a # 返回的是对象的地址
<__main__.Foo object at 0x000000AE64C79C88>
>>> print(a)
__str__
>>>
>>> class Foo(object):
def __repr__(self):
return '__repr__'
>>> a = Foo()
>>> a # 返回的是__repr__
__repr__
>>> print(a)
__repr__
>>>
网友评论