首先摒弃错误认知:并不是类中的调用都叫方法
看举例看代码
class Foo(object): def func(self): pass #实例化 obj = Foo() # 执行方式一:调用的func是方法 obj.func() #func 方法 # 执行方式二:调用的func是函数 Foo.func(123) # 函数
是的!例子中很明确,类对象调用func是方法,类调用func是函数,并且是自己传递参数123!
最大的区别是参数的传递参数,方法是自动传参self,函数是主动传参
那么以后我们就可以直接看参数是如何传递的来判断,
如果还不确定可以打印类型看看
from types import FunctionType,MethodType print(isinstance(obj.func,MethodType)) ---># True print(isinstance(Foo.func,FunctionType)) ---># True
ok!判断没错