类如何从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()
。