今天学习代码的过程中,被大佬突然询问知道function,bounded method,unbound method这三者的区别吗?带着半信半疑的态度,google了一下,有些写的挺详细的,但是没有那么直接,下面谈一谈我的理解:
function:在Python中,以模块区分代码结构的最小单位,而function就是直接定义在模块下面,没有被类(Class)所包裹,类似于:
# -*- coding: utf-8 -*-def fun1():passprint fun1
输出结果为:
<function fun1 at 0x00000000037C6048>
method分为bounded 和 unbound,也就是模块中存在于类里面的函数
unbound method:指的是直接定义在类里面的那个方法,代码如下:
# -*- coding: utf-8 -*-class A(object):def fun1(self):passprint A.fun1
这里满的fun1就是我们说的 unbound method,输出的结果是:
<unbound method A.fun1>
bounded method: 翻译过来就是有界的函数,其实直白点就是实例化之后对象所拥有的方法,代码如下
class A(object):def fun1(self):passa = A()print a.fun1
输出的结果是:
<bound method A.fun1 of <__main__.A object at 0x0000000003143358>>
所以,总的来说,方法就是直接定义在模块下面的函数,unbound method是直接定义的类里面的函数,
bounded method是实例化之后类的方法。