擅长:python、mysql、java
<p>当引用类实例上的方法时,该方法将绑定到该类实例。在</p>
<p><code>B().b</code>相当于:<code>lambda *args, **kwargs: b(<B instance>, *args, **kwargs)</code></p>
<p>我怀疑您在评估B.B.时得到了一个类似(但不完全相同)的包装引用。但是,这不是我预期的行为。在</p>
<p>有趣的是:</p>
<pre><code>A.a = lambda s: B.b(s)
A().a()
</code></pre>
<p>产量:</p>
<blockquote>
<p>TypeError: unbound method b() must be called with B instance as first
argument (got A instance instead)</p>
</blockquote>
<p>这表明<code>B.b</code>正在对实际方法的包装求值,包装器正在检查“self”是否具有预期的类型。我不知道,但这可能是口译员效率的问题。在</p>
<p>不过,这是个有趣的问题。我希望有人能附和一个更明确的答案。在</p>