您的位置:首页 > 其它

function, method, unbound_method, bound_method

2015-08-13 15:57 501 查看
<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.uf
print A.inf
print A.cf
print A.sf

a=A()
print a.uf
print a.inf
print a.cf
print 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>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: