python 函数与方法的区别

函数与方法的区别

并不是类中的调用都叫方法

1、函数要手动传self,方法不用传self。

2、如果是一个函数,用类名去调用,如果是一个方法,用对象去调用。

class Foo(object):
    def func(self, name):
        print('hello ' + name)

#实例化
obj = Foo()

# 执行方式一: 对象调用的func是方法
obj.func('xiaomi') #func 方法

# 执行方式二:类名调用的func是函数
Foo.func('self', 'daliu') # 函数

判断函数和方法的方式

class Foo(object):
    def func(self, name):
        print('hello ' + name)


from types import FunctionType, 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

原文地址:https://www.cnblogs.com/niuben/p/15787479.html