函数和方法的区别
- 函数要手动传self,方法不用传
- 如果是一个函数,用类名去调用
- 如果是一个方法,用对象去调用
示例
class Foo(object): def __init__(self): self.name="haiyan" def func(self): print(self.name) obj = Foo() obj.func() Foo.func(obj)
判断函数和方法实例
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
什么后面可以加括号?
- 方法
- 函数
- 对象
- 类
以上四种,后面都可以加括号 ()