码迷,mamicode.com
首页 > 其他好文 > 详细

05 多继承、object类

时间:2019-10-22 14:52:25      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:顺序   优先执行   内置函数   har   span   object   运行   cts   ESS   

多继承

Python中一个类可以继承多个父类,并且获得全部父类的属性和方法。

class A:
    def demo(self):
        print("demo")


class B:
    def test(self):
        print("test")


class C(A, B):
    pass

c = C()
c.demo()
c.test()

  运行结果:

E:\python3\python3.exe F:/PycharmProjects/project3-class/xh_14_多继承.py
demo
test

Process finished with exit code 0

   

多继承父类方法冲突

在开发中,如果父类之间存在同名的属性和方法,应尽量避免使用多继承。

在python中,MRO(method resolution order 方法搜索规则)用来解决方法优先执行的问题,它是每个类的内置函数
可以使用 print(类名.__mro__)来查看在存在同名方法时按何种优先级执行:

(<class ‘__main__.C‘>, <class ‘__main__.A‘>, <class ‘__main__.B‘>, <class ‘object‘>)

  如上表示:如C类中存在这个方法,则执行C类中的方法,否则按顺序(A类,B类,Object类)来最优执行。

object类

python3.x版本,如果一个类没有指定父类,则默认object为它的父类。

但在python2.x版本中,就没有默认指定object类。

所以在开发中,如果一个类没有指定父类,务必继承object类。

05 多继承、object类

标签:顺序   优先执行   内置函数   har   span   object   运行   cts   ESS   

原文地址:https://www.cnblogs.com/scopicat/p/11719467.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!