Python Class 继承

一、Class 继承

class C:
    def f1(self):
        print('C')
        # super(C,self).f1() 
        # 2、super()执行父类中的方法,如果没有父类而这同关系中也执行完,就会接着执行不同关系的类

class A(C):
    def f1(self):
        print('A')
        super(A,self).f1() # 1、super()按照顺序执行父类中的方法。
        # B.f1(self) # 3、指定执行不是关系中的方法

class B:
    def f1(self):
        print('B')

class Foo(A,B):
    pass


obj = Foo()
obj.f1() # obj.f1(obj) 在执行类方法时,会自动将类传给执行的方法。

'''
    手动执行类方法:
    obj = Foo()
    Foo.f1(obj)
'''

'''
    1、获得结果:
    A
    C
'''
'''
    2、获得结果:
    A
    C
    B
'''
'''
    3、获得结果:
    A
    B
'''

ps:在Python中,class的多继承,是先运行左边class中所有关系,包括继承关系。

self 是谁?self永远是调用方法的对象。

二、__setitem__ ,__getitem__,__delitem__()的使用

calss Bar(object):
    def __init__(self):
        pass

    def __setitem__(self,key,value):
        pass

    def __getitem__(self,key):
        pass

    def __delitem__(self,key):
        pass

obj = Bar()
obj['a'] = 123 # 调用 __setitem__
obj['a'] # 调用 __getitem__
del obj['a'] # 调用 __delitem__
'''
    当在执行 obj[] 的时候会自动调用类中的 __setitem__();__getitem__();__delitem__()方法
    key = a ; value = 123
'''

ps:通过 obj[] 取值除了字典,还有对类进行进行操作实现。 

猜你喜欢

转载自blog.csdn.net/u011146423/article/details/83239412