function, method, unbound_method, bound_method

来源:互联网 发布:淘宝司法拍卖房产技巧 编辑:程序博客网 时间:2024/04/30 14:24
<pre name="code" class="python">class A(object):    def uf():        pass    def inf(self):        pass    @classmethod    def cf(cls):        pass    @staticmethod    def sf():        pass
    <span style="color:#ff0000;">def ccf(cls):</span>
<span style="color:#ff0000;"><span style="white-space:pre"></span>print ccf</span>print A.ufprint A.infprint A.cfprint A.sfa=A()print a.ufprint a.infprint a.cfprint a.sf
print A.ccf
print a.ccf
#A.ccf()  #  错误,异常,缺少输入参数。 说明ccf是一个绑类的实例的方法
a.ccf()
</pre><pre name="code" class="python">输出结果:
<unbound method A.uf><unbound method A.inf><bound method type.cf of <class '__main__.A'>><function sf at 0x25037d0><bound method A.uf of <__main__.A object at 0x2501c50>><bound method A.inf of <__main__.A object at 0x2501c50>><bound method type.cf of <class '__main__.A'>><function sf at 0x25037d0>
<span style="color:#cc0000;"><__main__.A object at 0x28cacd0><class '__main__.A'></span>
</pre><pre name="code" class="python">总结:
1. 静态方法就是函数对象
2. 绑定方法与未绑定方法是指方法与所属对象的关系
3.<span style="color:#ff6600;"> </span><span style="color:#cc0000;">红色部问说明:绑定类的方法与绑定类的实例的方法在定义上的区别为是否加@classmethod, 与第一个参数是"cls"或“self”无关,“cls”,"self"只是书写上的区分。</span>
                                             
0 0
原创粉丝点击