title: Calling class staticmethod within the class body?
body: <p>When I attempt to use a static method from within the body of the class, and define the static method using the built-in <code>staticmethod</code> function as a decorator, like this:</p>
  <pre><code>class Klass(object):
  
      @staticmethod  # use as decorator
      def _stat_func():
          return 42
  
      _ANS = _stat_func()  # call the staticmethod
  
      def method(self):
          ret = Klass._stat_func() + Klass._ANS
          return ret
  </code></pre>
  <p>I get the following error:</p>
  <pre class="lang-none prettyprint-override"><code>Traceback (most recent call last):
    File &quot;call_staticmethod.py&quot;, line 1, in &lt;module&gt;
      class Klass(object): 
    File &quot;call_staticmethod.py&quot;, line 7, in Klass
      _ANS = _stat_func() 
    TypeError: 'staticmethod' object is not callable
  </code></pre>
  <p><em>I understand why this is happening (descriptor binding)</em>, and can work around it by manually converting <code>_stat_func()</code> into a staticmethod after its last use, like so:</p>
  <pre><code>class Klass(object):
  
      def _stat_func():
          return 42
  
      _ANS = _stat_func()  # use the non-staticmethod version
  
      _stat_func = staticmethod(_stat_func)  # convert function to a static method
  
      def method(self):
          ret = Klass._stat_func() + Klass._ANS
          return ret
  </code></pre>
  <p>So my question is:</p>
  <p>    <strong>Are there cleaner or more &quot;Pythonic&quot; ways to accomplish this?</strong></p>