Python中方法
一共存在三种方法,分别是实例方法,类方法(classmethod),静态方法(staticmethod);
示例代码:
1 | # 单独的函数定义,不需要绑定实例 |
代码运行与结果
1 | a = A() |
这里先理解下函数参数里面的self和cls.这个self和cls是对类或者实例的绑定,对于一般的函数来说我们可以这么调用
foo(x)
,这个函数就是最常用的,它的工作跟任何东西(类,实例)无关.对于实例方法,我们知道在类里每次定义方法的时候都需要绑定这个实例,就是foo(self, x)
,为什么要这么做呢?因为实例方法的调用离不开实例,我们需要把实例自己传给函数,调用的时候是这样的a.foo(x)
(其实是foo(a, x)
).类方法一样,只不过它传递的是类而不是实例,A.class_foo(x)
.注意这里的self和cls可以替换别的参数,但是python的约定是这俩,还是不要改的好.对于静态方法其实和普通的方法一样,不需要对谁进行绑定,唯一的区别是调用的时候需要使用
a.static_foo(x)
或者A.static_foo(x)
来调用.
简单总结
Python中存在方法与函数:方法就是定义在class类定义的函数,其往往需要与实例或者类进行绑定,函数就是独立于实例与类存在的方法,不需要绑定任何事物;我们可以简单的将Python中的方法定义为位于类内部定义的函数即可;
Python中的方法往往需要进行绑定,这种绑定能够起到定义不同的作用域的作用,知道存在三种方法及其写法及其调用方式即可;