title: How do I properly decorate a `classmethod` with `functools.lru_cache`?
body: <p>I tried to decorate a  <code>classmethod</code> with <code>functools.lru_cache</code>. My attempt failed:</p>
  
  <pre><code>import functools
  class K:
      @functools.lru_cache(maxsize=32)
      @classmethod
      def mthd(i, stryng: str): \
          return stryng
  
  obj = K()
  </code></pre>
  
  <p>The error message comes from <code>functools.lru_cache</code>:</p>
  
  <pre><code>TypeError: the first argument must be callable
  </code></pre>