课程
/后端开发
/Python
/python进阶
如何区分函数和方法
2015-03-08
源自:python进阶
正在回答
如果你定义了一个函数:bar(self, a, b, c)
你可以直接调用,注意self参数也要传:
bar(obj, 1, 2, 3)
如果你把bar函数绑定到对象,你可以在对象上调用:
foo.bar(1, 2, 3)
注意self参数不能传也不让你传,由解释器自动传入foo对象
可以直接在class中定义方法,这样每个实例自动绑定了该方法
也可以在运行期给实例绑定方法,两种方式都是等价的,因为python解释器只不过把class的定义翻译成“给实例绑定方法”的代码
python中,函数(方法)并不是依附与类才能存在。函数并不只是在类中定义。这种直接在模块中而不是类中定义的函数(方法),叫做函数。
而 方法(method),是依附于类 的,他们定义在类中,是属于类的,但是他们本质上,还是一个函数。方法的第一个参数不一定必须是self。
这么说吧,凡是def foo()这种,都是函数,在类中定义的函数,就是方法。
总结:
方法:类内普通方法,类方法
函数:普通函数,类内的静态方法
我的理解,函数就是方法。
举报
学习函数式、模块和面向对象编程,掌握Python高级程序设计