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("不知道是什么")
posted @ 2021-03-07 15:17  kingdoms  阅读(131)  评论(0)    收藏  举报