Python-31章 isinstance type issubclass

isinstance type issubclass

class  animal():
    def eat(self):
        print("餓了喫點東西")
class cat(animal):
    def play(self):
        print("貓喜歡玩")
c = cat()
print(isinstance(c,cat))  #輸出 : True
print(isinstance(c,animal)) # 向上判斷,輸出: True
a = animal()
print(isinstance(a,cat)) #不能向下判斷,輸出:False
#判斷某一個類是不是某一個類的家族體系中的
print(type(a)) #返回a的數據類型,精準告訴你這個對象的數據類型,輸出:<class '__main__.animal'>

#判斷,xx類是否是xx的子類
print(issubclass(cat,animal)) #輸出: True
print(issubclass(animal,cat)) #輸出: False

區分一個方法和函數

在類中,如果是

類名.方法 調用,是一個函數
對象.方法 調用,是一個方法
類方法:都是方法
靜態方法:都是函數
def func():
    print("我是函數")

class roo:
    def chi(self): #實例方法
        print("我是方法")
r = roo()
#藉助from types import functiontype methodtype判斷是方法還是函數
from types import FunctionType, MethodType
print(isinstance(r.chi,FunctionType)) #判斷是不是一個函數,輸出:False
print(isinstance(r.chi,MethodType)) #判斷是不是一個方法,輸出:True
print(isinstance(roo.chi,FunctionType)) #輸出: True
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章