函数与方法的区别
并不是类中的调用都叫方法
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