- isinstance/issubclass/type
- isinstance :检查第一个参数(对象)是否是第二个参数(类及父类)的实例。
- 例
-
View Codeclass Base(object): pass class Foo(Base): pass obj1=Foo() print(isinstance(obj1,Foo)) # True 第一个参数(对象)是第二个参数(类及父类)的实例 print(isinstance(obj1,Base)) # True 第一个参数(对象)是第二个参数(类及父类)的实例 obj2=Base() print(isinstance(obj2,Base)) # True 第一个参数(对象)是第二个参数(类及父类)的实例 print(isinstance(obj2,Foo)) # False 第一个参数(对象)不是第二个参数(类及父类)的实例
- insubclass:检查第一个参数是否为第二个参数的子孙类
- 例1
View Codeclass Base(object): pass class Foo(Base): pass class Bar(Foo): pass print(issubclass(Bar,Foo)) #True print(issubclass(Bar,Base)) #True
- 例2
View Codeclass Foo(object):#类 pass class Bar(object):#类 pass def func(*args):#函数 foo_counter =0 bar_counter =0 for item in args: if type(item) == Foo: foo_counter += 1 elif type(item) == Bar: bar_counter += 1 return foo_counter,bar_counter result = func(Foo(),Bar(),Foo()) print(result) # (2, 1) v1,v2 = func(Foo(),Bar(),Foo()) print(v1,v2) # 2 1
- type:获取当前对象是由哪个类创建的
- 码
View Codeclass Base(object): pass obj=Base() print(obj,type(obj)) #<__main__.Base object at 0x0000013939D47940> <class '__main__.Base'> if type(obj)==Base: print("obj是Base类型") #obj是Base类型
- 码
- isinstance :检查第一个参数(对象)是否是第二个参数(类及父类)的实例。

浙公网安备 33010602011771号