擅长:python、mysql、java
<p>你不仅可以依靠这种行为,你还经常这样做。</p>
<p>想想方法。一个方法仅仅是一个已经成为类属性的函数。然后在实例中查找它。</p>
<pre><code>>>> def foo(self, x):
... print "foo:", self, x
...
>>> class C(object):
... method = foo # What a weird way to write this! But perhaps illustrative?
...
>>> C().method("hello")
foo: <__main__.C object at 0xadad50> hello
</code></pre>
<p>对于像函数这样的对象,这不是一个简单的查找,但是会发生一些魔术来自动传递<code>self</code>。您可能已经使用了其他要存储为类属性并在实例上查找的对象;属性是一个示例(如果您不熟悉<code>property</code>内置函数,请查看它)</p>
<p>正如okm所指出的,这种工作方式在<a href="http://docs.python.org/reference/datamodel.html">data model reference</a>中进行了描述(包括有关使方法和属性工作的魔法的更多信息的信息和链接)。到目前为止,数据模型页是语言引用中最有用的部分;它还包括关于几乎所有<code>__foo__</code>方法和名称的文档。</p>