通常我們認為在類中的函數為方法,類外面聲明def為函數,這種說法有點片面
方法1:
class Work(object): def show(self): print("執行show方法") work = Work() print(Work.show) print(work.show) 結果: <function Work.show at 0x000001CC55BC5268> <bound method Work.show of <__main__.Work object at 0x000001CC55C2F240>>
可以看出通過類方法調用為函數,通過實例化對象調用為方法
方法2:
from types import MethodType,FunctionType print(isinstance(Work.show,FunctionType)) print(isinstance(Work.show,MethodType)) print(isinstance(work.show,FunctionType)) print(isinstance(work.show,MethodType)) 結果: True False False True
可以用內置的isinstance 來判斷