python中函数与方法的区别
在python中,其实函数和方法的区别取决于其调用者,在普通的函数定义中就叫做函数
例如:
def func():
print('这是一个函数')
而在一个类中定义时,就将其分为两种情况
第一种:被称为方法时
class Test(object):
def func(self):
print('我执行了')
只有实例化后对象去调用这个func时,我们就叫func为方法
obj = Test()
obj.func() # 此时方法的self参数是自动帮我们传递的
第二种: 被称为函数时,直接使用类名去访问这个func
obj = Test()
Test.func(obj) # 这个时候的self参数需要我们自己去传递
在python中我们该如何去判断func是函数还是方法呢?
其实我们可以编写这样一个函数,利用python自带的types库中的FunctionType, MethodType方法
from types import FunctionType, MethodType
def check(arg):
if isinstance(arg, FunctionType):
print(arg + "是函数")
elif isinstance(arg, MethodType):
print(arg + "是方法")
else:
print("不知道是什么")

浙公网安备 33010602011771号