一.super().method()

  1. class Base(object):
  2. def message(self, num):
  3. print("Base.message", num)
  4. super().message(1000)
  5. class Bar(object):
  6. def message(self, num):
  7. print("Bar.message", num)
  8. class Foo(Base, Bar):
  9. pass
  10. obj = Foo()
  11. obj.message(1)
  12. >>> Base.message 1
  13. >>> Bar.message 1000

应用场景:
可以把原来类的方法继承之后,添加出来新的方法

  1. class MyDict(dict):
  2. def get(self, k):
  3. print("自定义功能")
  4. return super().get(k)
  5. info = MyDict()
  6. info['name'] = "武沛齐" # __setitem__
  7. info["age"] = 18 # __setitem__
  8. print(info)
  9. value = info.get("age")
  10. print(value)

理解:
1.直接使用
super(class,obj).abc(),把这个类屏蔽,在这个class的父类中去查找abc()方法
2.在class中使用,不需要加参数,把本身这个类屏蔽,在这个class的父类中去查找abc()方法
3.super(class).abc(),在父类中查找abc()这个类方法

二.type()函数

  1. v2 = "武沛齐"
  2. print( type(v2) == str ) # True
  3. v3 = [11, 22, 33] # list(...)
  4. print( type(v3) == list ) # True
  1. class Foo(object):
  2. pass
  3. v4 = Foo()
  4. print( type(v4) == Foo ) # True

备注:
type(obj)返回的是这个obj的类对象
type(class)返回的是type这个类对称
举例:type(123) .str(456)
可以对 类.方法(对象) 对对象进行使用 或者 对象.方法

三.isinstance 判断某个对象是否是某个类的实例

  1. class Top(object):
  2. pass
  3. class Base(Top):
  4. pass
  5. class Foo(Base):
  6. pass
  7. v1 = Foo()
  8. print( isinstance(v1, Foo) ) # True,对象v1是Foo类的实例
  9. print( isinstance(v1, Base) ) # True,对象v1的Base子类的实例。
  10. print( isinstance(v1, Top) ) # True,对象v1的Top子类的实例。

四.issubclass判断某个对象是否是某个类的子孙类

  1. class Top(object):
  2. pass
  3. class Base(Top):
  4. pass
  5. class Foo(Base):
  6. pass
  7. print(issubclass(Foo, Base)) # True
  8. print(issubclass(Foo, Top)) # True