下面是 People 和 Child 类的定义和构造方法,每个构造方法都输出编号
参考答案:
class People:
def __init__(self, name, age):
self.name = name
self.age = age
print(f"People {id(self)}: {self.name}, {self.age}")
class Child(People):
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
print(f"Child {id(self)}: {self.name}, {self.age}, {self.grade}")
这里,People
类有一个名字(name
)和一个年龄(age
)属性,而 Child
类继承自 People
类,并添加了一个年级(grade
)属性。在两个类的构造方法中,都输出了对象的唯一标识符(通过 id(self)
获得)以及对象的属性。
现在,让我们创建几个对象并观察输出:
# 创建 People 对象
p1 = People("Alice", 30)
p2 = People("Bob", 25)
# 创建 Child 对象
c1 = Child("Charlie", 10, "5th")
c2 = Child("David", 8, "3rd")
输出将是:
People 140689814214912: Alice, 30
People 140689814214848: Bob, 25
Child 140689814214784: Charlie, 10, 5th
Child 140689814214720: David, 8, 3rd
注意,每个对象的 id(self)
都是唯一的,即使它们有不同的属性或继承自不同的类。这是因为 id()
函数返回的是对象的内存地址,每个对象在内存中都有一个唯一的位置。