Python中类的输出形式
在Python中,当我们输出一个类或类的实例时,有时会看到类似于<__main__.ClassName object at 0x7f8c8c6d7c50>
这样的输出形式。这是因为Python中的每个对象都有一个唯一的标识符,即对象的内存地址。这个地址是由Python解释器自动分配的,用于标识对象在内存中的位置。当我们输出一个类或类的实例时,Python会默认调用该对象的__repr__()
方法,该方法返回一个字符串,其中包含对象的类名和内存地址。
示例一
class MyClass:
pass
obj = MyClass()
print(obj)
在上述示例中,我们定义了一个名为MyClass
的类,并创建了一个该类的实例obj
。当我们使用print()
函数输出obj
时,Python会默认调用obj
的__repr__()
方法,该方法返回一个字符串,其中包含对象的类名和内存地址。
示例二
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name='{self.name}', age={self.age})"
p = Person('Alice', 25)
print(p)
在上述示例中,我们定义了一个名为Person
的类,并创建了一个该类的实例p
。我们在Person
类中定义了__repr__()
方法,该方法返回一个字符串,其中包含对象的类名、属性名和属性值。当我们使用print()
函数输出p
时,Python会调用p
的__repr__()
方法,该方法返回一个包含对象信息的字符串。
总之,当我们输出一个类或类的实例时,Python会默认调用该对象__repr__()
方法,该方法返回一个字符串,其中包含对象的类名和内存地址。如果我们想要自定义输出形式,可以在类中定义__repr__()
方法,返回一个包含对象信息的字符串。