title: Using property() on classmethods
body: <p>I have a class with two class methods (using the <code>classmethod()</code> function) for getting and setting what is essentially a static variable.  I tried to use the <code>property()</code> function with these, but it results in an error.  I was able to reproduce the error with the following in the interpreter:</p>
  <pre><code>class Foo(object):
      _var = 5
      @classmethod
      def getvar(cls):
          return cls._var
      @classmethod
      def setvar(cls, value):
          cls._var = value
      var = property(getvar, setvar)
  </code></pre>
  <p>I can demonstrate the class methods, but they don't work as properties:</p>
  <pre><code>&gt;&gt;&gt; f = Foo()
  &gt;&gt;&gt; f.getvar()
  5
  &gt;&gt;&gt; f.setvar(4)
  &gt;&gt;&gt; f.getvar()
  4
  &gt;&gt;&gt; f.var
  Traceback (most recent call last):
    File &quot;&lt;stdin&gt;&quot;, line 1, in ?
  TypeError: 'classmethod' object is not callable
  &gt;&gt;&gt; f.var=5
  Traceback (most recent call last):
    File &quot;&lt;stdin&gt;&quot;, line 1, in ?
  TypeError: 'classmethod' object is not callable
  </code></pre>
  <p>Is it possible to use the <code>property()</code> function with <code>@classmethod</code> decorated functions?</p>