擅长:python、mysql、java
<p><code>classmethod</code>和<code>staticmethod</code>返回<a href="https://docs.python.org/howto/descriptor.html" rel="noreferrer">descriptor objects</a>,不是函数。大多数装饰器的设计不是为了接受描述符。</p>
<p>通常,在使用多个decorator时,必须最后应用<code>classmethod</code>和<code>staticmethod</code>。而且由于decorator是按“自底向上”的顺序应用的,所以<code>classmethod</code>和<code>staticmethod</code>通常应该是源代码中最上面的。</p>
<p>像这样:</p>
<pre><code>class My_class(object):
@classmethod
@print_function_name
def get_dir(cls):
return dir(cls)
@staticmethod
@print_function_name
def get_a():
return 'a'
</code></pre>