首先摒弃错误认知:并不是类中的调用都叫方法
看举例看代码
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