擅长:python、mysql、java
<p>请注意,<code>A.foo</code>不使用函数的<em>名称</em>,而是函数本身。在</p>
<pre><code>class A:
def bar(self):
print 'Bar'
def apply(self, func):
func() # call it like any other function
def copyApply(self, func):
cpy = copy.copy(self)
func(cpy) # cpy becomes the self parameter
a = A()
func = a.bar # don't call the function yet
a.apply(func) # call the bound method `a.bar`
a.apply(a.bar) # same as the line above
a.copyApply(A.bar) # call the unbound method `A.bar` on a new `A`
</code></pre>
<p>在python中,<code>a.foo()</code>与<code>A.foo(a)</code>相同,其中<code>a</code>是{<cd5>}类型。因此,<code>copyApply</code>方法采用<em>未绑定的</em>条方法作为其参数,而^{<cd7>则采用<em>绑定</em>方法。在</p>