1、函数要手动传self,方法不用传
2、如果是一个函数,用类名去调用,如果是一个额方法,用对象去调用
最大的区别是参数的传递参数,方法是自动传参self,函数是主动传参
from types import MethodType, FunctionType
class Foo(object):
def __init__(self):
self.name = "haiyan"
def func(self):
print(self.name) # 方法
def su(self):
print("okok") # 方法
def sk():
print("ok") # 函数(在class外)
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
sk()
obj.su()
obj.func()