跳到主要内容

下面是 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() 函数返回的是对象的内存地址,每个对象在内存中都有一个唯一的位置。