擅长:python、mysql、java
<p>我在<a href="https://stackoverflow.com/questions/37199842/python-assigning-staticmethod-to-class-variable-gives-error">this thread</a>上找到了一个非常鼓舞人心的解决方案。事实上,您的代码不是很pythonic,并且将静态方法属性化为类实例的属性。以下代码起作用:</p>
<pre class="lang-py prettyprint-override"><code>class WithoutDec():
stat = None
@staticmethod
def OuterStat(val):
return val + 1
</code></pre>
<p>然后你打电话:</p>
<pre><code>my_without_dec = WithoutDec()
my_without_dec.stat = WithotuDec.OuterStat
my_without_dec.stat(2)
</code></pre>
<p>稍后,如果要创建新方法,请调用:</p>
<pre><code>def new_func(val):
return val+1
WithoutDec.newStat = staticmethod(new_func)
my_without_dec.stat = WithoutDec.newStat
my_without_dec.stat(2)
</code></pre>