python的类可以有两个以上父类,也即有类A,类B,类C。C同时继承类A与类B,此时C中可以使用A与B中的属性与方法。那么问题来了,如果A与B中具有相同名字的方法,这个时候python怎么调用的会是哪个方法呢?
若为多继承,那么当多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清
多继承顺序。(mro 解析顺序)
2.类有关的几个函数
#和类有关的几个函数
delattr() # 删除对象属性 (删除器)
getattr() # 得到对象的某个属性值 (获取器)
setattr() # 给对象添加某个属性值 (设置器 )
hasattr() # 判断对象object是否包含名为name的特性
isinstance() # 检查对象是否是类的对象,返回True或False
issubclass() # 检查一个类是否是另一个类的子类。返回True或False
3.类的特殊方法
#类属性:
__dict__ # 类的属性(包含一个字典,由类的数据属性组成)
__doc__ # 类的文档字符串
#类方法:
__init__ # 初始化
__repr__ # 直接返回这个对象 repr() 函数就是调用对象的这个方法
__str__ # print(obj) 如果类里面定义了__repr__,没有定义 __str__ print(obj)也会返回__repr__的内容,或者说__repr__的优先级更高
__call__ # Obj() 使实例可被调用
#运算符方法
__add__(self,other) #x+y
__sub__(self,other) #x-y
__mul__(self,other) #x*y
__mod__(self,other) #x%y
__iadd__(self,other) #x+=y
__isub__(self,other) #x-=y
__radd__(self,other) #y+x
__rsub__(self,other) #y-x
__imul__(self,other) #x*=y
__imod__(self,other) #x%=y