一、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[] 取值除了字典,还有对类进行进行操作实现。