一般情況下,單獨寫一個def func():表示一個函數,如果寫在類里面是一個方法。但是不完全准確。
class Foo(object): def fetch(self): pass print(Foo.fetch) # 打印結果<function Foo.fetch at 0x000001FF37B7CF28>表示函數 # 如果沒經實例化,直接調用Foo.fetch()括號里要self參數,並且self要提前定義 obj = Foo() print(obj.fetch) # 打印結果<bound method Foo.fetch of <__main__.Foo object at 0x000001FF37A0D208>>表示方法
from types import MethodType,FunctionType class Foo(object): def fetch(self): pass print(isinstance(Foo.fetch,MethodType)) # False print(isinstance(Foo.fetch,FunctionType)) # True obj = Foo() print(isinstance(obj.fetch,MethodType)) # True print(isinstance(obj.fetch,FunctionType)) # False # MethodType方法類型 # FunctionType函數類型
