百木园-与人分享,
就是让自己快乐。

python继承

多态

多态-单继承,多继承


class master1(object):
    def __init__(self):
        self.konfu=\"古法制作\"
    def make(self):
        print(f\'{self.konfu}美味豆腐\')
class master2(object):
    def __init__(self):
        self.konfu=\"简单制作\"
    def make(self):
        print(f\'{self.konfu}美味海鲜\')


# 验证单继承
class apprentic1(master1):
    pass

t1=apprentic1()
# 对象访问实例属性
print(t1.konfu)
# 实例
t1.make()

# 验证多继承
class apprentice2(master1,master2):
    pass
t2=apprentice2()
print(t2.konfu)
t2.make()
# 一个类继承多个类,默认第一个父类的属性和功能方法

单继承重写(修改)父类同名属性和方法

class master1(object):
    def __init__(self):
        self.konfu=\"古法制作\"
    def make(self):
        print(f\'{self.konfu}美味豆腐\')

# 验证单继承重定义修改父类同名属性和方法
class apprentic1(master1):
    def __init__(self):
        self.konfu = \"最新独创法制作\"
    def make(self):
        print(f\'{self.konfu}更美味可口豆腐\')

t1=apprentic1()
# 对象访问实例修改的属性
print(t1.konfu)
# 修改的方法实例
t1.make()

查看该类继承了那些父类

  • 方法解析顺序, Method Resolution Order
class master1(object):
    pass
class apprentic1(master1):
    pass
class stu(apprentic1):
    pass
print(stu.__mro__)
# 输出
# (<class \'__main__.stu\'>, <class \'__main__.apprentic1\'>, <class \'__main__.master1\'>, <class \'object\'>)

单继承重写(修改)父类同名属性和方法后,如何再调用父类属性

# self在定义时需要定义,但是在调用时会自动传入。
# self的名字并不是规定死的,但是最好还是按照约定是用self
# self总是指调用时的类的实例。
class master1(object):
    def __init__(self):
        self.konfu=\"古法制作\"
    def make(self):
        print(f\'{self.konfu}美味豆腐\')

# 验证单继承重定义修改父类同名属性和方法
class apprentic1(master1):
    def __init__(self):
        self.konfu = \"最新独创法制作\"
    def make(self):
        # 如果是先调用了了父类的属性和方法,父类属性会覆盖子类属性,故在调用属性前,先调用自己子类的初始化
        # 加自己的初始化!!!!
        # 否则导致输出为古法
        # 属性值是上一次调用的init调用的属性值,所以如果没有他就输出古法
        self.__init__()
        print(f\'{self.konfu}更美味可口豆腐\')
    def makemaster(self):
        master1.__init__(self)
        master1.make(self)


t1=apprentic1()
# 对象访问实例修改的属性
print(t1.konfu)
# 修改的方法实例
t1.make()
# 如何通过t1调用父类没修过的方法
t1.makemaster()
# 如果make不自己定义,仍会输出古法的了
t1.make()


来源:https://www.cnblogs.com/uooo/p/15965871.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » python继承

相关推荐

  • 暂无文章