1. 程式人生 > >類的判斷函式:issubclass,type,isinstance

類的判斷函式:issubclass,type,isinstance

issubclass() 這個內建函式可以幫我們判斷xxx類是否是yyy型別的子類

舉例:

class Base:
  pass
class Foo(Base):
  pass
class Bar(Foo):
  pass
print(issubclass(Bar, Foo)) # True
print(issubclass(Foo, Bar)) # False
print(issubclass(Bar, Base)) # True 子類的子類也是可以進行判斷的

 

type(obj) 表示檢視obj是由哪個類組成的

舉例:

class Foo:
  pass
obj = Foo()
print(obj, type(obj))  # 檢視obj的類

 

isinstance也可以判斷xxx是yyy型別的資料. 但是isinstance沒有type那麼精準. 

舉例:

class Base:
pass
class Foo(Base):
pass
class Bar(Foo):
pass
print(isinstance(Foo(), Foo)) # True
print(isinstance(Foo(), Base)) # True
print(isinstance(Foo(), Bar)) #False