擅长:python、mysql、java
<p>python3中没有未绑定的方法,因此您也无法检测到它们。你只有常规函数。最多可以看到它们是否有一个<a href="https://docs.python.org/3/glossary.html#term-qualified-name" rel="nofollow">qualified name with a dot</a>,表示它们是嵌套的<em>,并且它们的第一个参数名是<code>self</code>:</p>
<pre><code>if '.' in method.__qualname__ and inspect.getargspec(method).args[0] == 'self':
# regular method. *Probably*
</code></pre>
<p>当然,对于那些恰好以<code>self</code>作为第一个参数的静态方法和嵌套函数,以及不使用<code>self</code>作为第一个参数的常规方法(违背惯例),这一点完全失败。在</p>
<p>对于静态方法和类方法,您必须查看<em>类字典</em>:</p>
^{pr2}$
<p>这是因为<code>C.__dict__['st']</code>是实际的<code>staticmethod</code>实例,在<a href="https://docs.python.org/3/howto/descriptor.html" rel="nofollow">binding to the class</a>之前。在</p>