擅长:python、mysql、java
<p>删除<code>@staticmethod</code>的定义之前的<code>@staticmethod</code>修饰符。当你用<code>@staticmethod</code>修饰一个方法时,这个方法不把对象作为隐式的第一个参数(所以你不应该把<code>self</code>放在它的签名中)。在</p>
<p>例如,在下面,您可以看到这两个方法都是在不传递任何显式参数的情况下被调用的,即使<code>A.non_static</code>需要参数<code>self</code>。这是因为通常的方法隐式地接收<code>self</code>,而静态方法则不会</p>
<pre class="lang-py prettyprint-override"><code>>>> class A:
... @staticmethod
... def static(): # No `self` argument
... print('static')
... def non_static(self): # Here `self` is required
... print('non-static')
>>> a = A() # a is an instance of A
>>> a.static()
'static'
>>> a.non_static()
'non-static'
</code></pre>