看他的調(diào)用者是誰,如果是類,就需要傳入一個(gè)參數(shù)self的值,這時(shí)他就是一個(gè)函數(shù),
如果調(diào)用者是對(duì)象,就不需要給self傳入?yún)?shù)值,這時(shí)他就是一個(gè)方法
print(isinstance(obj.func,FunctionType))#False
print(isinstance(obj.func,MethodType))#True
classFoo(object):
def__init__(self):
self.name='lcg'
deffunc(self):
print(self.name)
obj=Foo()
print(obj.func)#>
print(Foo.func)#
#------------------------FunctionType,MethodType------------#
fromtypesimportFunctionType,MethodType
obj=Foo()
print(isinstance(obj.func,FunctionType))#False
print(isinstance(obj.func,MethodType))#True
print(isinstance(Foo.func,FunctionType))#True
print(isinstance(Foo.func,MethodType))#False
#------------------------------------------------------------#
obj=Foo()
Foo.func(obj)#lcg
obj=Foo()
obj.func()#lcg
"""
注意:
方法,無需傳入self參數(shù)
函數(shù),必須手動(dòng)傳入self參數(shù)
"""
以上內(nèi)容為大家介紹了Python之如何判斷是函數(shù)還是方法?,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。