__repr__()方法¶
通常情况下, 直接输出某个实例化对象, 会得到类型 + object at + 内存地址这样的信息.
Example:
class Foo:
pass
foo = Foo()
print(foo)
# 输出结果
<__main__.Foo object at 0x7ff43a8d7668>
其实, 直接输出某个实例化对象时, 就是调用该对象的__repr__()方法, 输出的是该方法的返回值.
注解
Python中的每个类都包含__repr__()方法, 因为object类包含__repr__()方法, 而Python中所有的类都直接或间接继承自object类.
默认情况下, __repr__()会返回和调用者相关的类名 + object at + 内存地址信息.
当然, 我们还可以重写这个方法, 从而实现输出实例化对象时, 输出我们想要的信息.
Example:
class Foo:
def __init__(self):
self.name = 'sylar'
self.age = 18
# 重写__repr__()方法
def __repr__(self):
return 'Foo[name=' + str(self.name) + ', age=' + str(self.age) + ']'
foo = Foo()
print(foo)
# 运行结果:
Foo[name=sylar, age=18]