如何用Python编写代码实现子类调用父类的构造函数?
- 内容介绍
- 文章标签
- 相关推荐
本文共计791个文字,预计阅读时间需要4分钟。
前言:Python中面向对象编程,当在子类的实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果子类中这些属性未经过初始化,使用时会出现错误。例如:
前言
python中进行面向对象编程,当在子类的实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果在子类中这些属性未经过初始化,使用时就会出错。
例如以下的代码:
class A(object): def __init__(self): self.a = 5 def function_a(self): print('I am from A, my value is %d' % self.a) class B(A): def __init__(self): self.b = 10 def function_b(self): print('I am from B, my value is %d' % self.b) self.function_a() # 调用类A的方法,出错 if __name__ == '__main__': b = B() b.function_b()
执行结果如下:
这时候就需要在类B的__init__方法中先执行类A的__init__方法,脚本才可以正确执行。Python提供了两种方法来完成这个任务。
本文共计791个文字,预计阅读时间需要4分钟。
前言:Python中面向对象编程,当在子类的实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果子类中这些属性未经过初始化,使用时会出现错误。例如:
前言
python中进行面向对象编程,当在子类的实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果在子类中这些属性未经过初始化,使用时就会出错。
例如以下的代码:
class A(object): def __init__(self): self.a = 5 def function_a(self): print('I am from A, my value is %d' % self.a) class B(A): def __init__(self): self.b = 10 def function_b(self): print('I am from B, my value is %d' % self.b) self.function_a() # 调用类A的方法,出错 if __name__ == '__main__': b = B() b.function_b()
执行结果如下:
这时候就需要在类B的__init__方法中先执行类A的__init__方法,脚本才可以正确执行。Python提供了两种方法来完成这个任务。

