怎么在Python中实现继承与多继承?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强> 1。继承强>
在c++和Java中,使用继承时,子类的构造函数会自动调用父类的构造函数,但在Python中,子类必须显式的在<代码> __init__() 代码>函数中再次调用父类中的<代码> __init__() 代码>函数。如下例:
class 员工(对象): def 才能;__init__(自我,,名字,,salary =, 0): ,,,self.name =,名字 ,,,self.salary =工资 def 才能raisesalary(自我,,%): ,,,self.salary =, self.salary *, (1, +, %) def 才能工作(自我): ,,,print self.name,,“writes computer code" class 设计师(员工): def 才能__init__(自我,,名字): ,,,Employee.__init__(自我,,名字,,5000) def 才能工作(自我): ,,,print self.name,,“writes 图纸设计document"
子类设计师也可以使用<代码>超级> 代码来进行初始化。
class 设计师(员工): def 才能__init__(自我,,名字): ,,,超级(设计师,,自我). __init__(名字,,5000) def 才能工作(自我): ,,,print self.name,,“writes 图纸设计document"
<强> 2。多继承强>
在c++中,使用虚继承来实现多继承,以避免子类在继承时多次调用基类的构造函数,而在Java中,则取消了多继承,使用接口来达到多继承的效果,在Python中的解决方案是MRO即方法解析顺序,方法解析顺序。主要是通过<代码>超级代码>方法实现的。但如果用<代码>超级代码>方法来解决多继承问题,由于各个父类中的<代码> __init__() 代码>函数中参数的数量可能不同,那应该怎么初始化呢?如下例。
class (对象): def 才能__init__ (,,): ,,print class B(对象): def 才能;__init__(自我,,a, b): ,,,print a + b class C (A, B): def 才能__init__(自我): ,,,超级(C,自我). __init__ (?) c =, C ()
则?处应该填几个参数?
答案是1个参数,因为按照继承的顺序,一个类中的构造需要1个参数初始化即可。即<代码>超级代码>函数与父类的继承顺序有关,且初始化父类继承顺序中,最先有<代码> __init__() 代码>方法的那个。
<代码>超级代码>方法的使用仍在继续探索中…
python可以做什么
python是一种编程语言,内置了许多有效的工具,python几乎无所不能,该语言通俗易懂,容易入门,功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,网页开发等。
看完上述内容,你们掌握怎么在python中实现继承与多继承的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!