类如何从Python中的另一个类继承?

在Python中,一个类可以通过在类定义时将其他类放在括号中来继承另一个类。这被称为继承,并且被继承的类被称为基类或父类,而继承的类被称为派生类或子类。

继承允许你创建新的类,这些类可以重用现有类的属性和方法,并且可以添加或覆盖新的功能。这是一种实现代码重用和抽象化的强大方式。

下面是一个简单的例子,展示了如何在Python中实现继承:

# 基类/父类
class BaseClass:
    def __init__(self, value):
        self.value = value

    def display(self):
        print(self.value)

# 派生类/子类
class DerivedClass(BaseClass):
    def __init__(self, value, extra):
        # 调用基类的构造函数
        super().__init__(value)
        self.extra = extra

    def show_extra(self):
        print(self.extra)

# 创建一个派生类的实例
obj = DerivedClass('Hello', 'World')

# 调用从基类继承的方法
obj.display()  # 输出: Hello

# 调用派生类中定义的新方法
obj.show_extra()  # 输出: World

在这个例子中,DerivedClass 继承了 BaseClass。在 DerivedClass__init__ 方法中,我们使用 super().__init__(value) 来调用基类的构造函数,以确保基类的初始化代码被执行。然后,我们添加了一个名为 show_extra 的新方法,以及一个额外的属性 extra

通过使用 super() 函数,我们可以调用基类中的方法,即使我们覆盖了它们。这在多重继承的情况下特别有用,因为 super() 会考虑查找顺序(MRO,Method Resolution Order)以确保正确地调用基类方法。

注意,在Python 3中,你不需要显式地调用基类构造函数的名字,而是可以使用 super() 来自动处理。在Python 2中,你通常需要这样做:BaseClass.__init__(self, value),但在Python 3中,推荐使用 super()

发表评论

后才能评论