title: abc.abstractmethod + property
body: <p>According to the <a href="http://docs.python.org/3.3/whatsnew/3.3.html#abc" rel="nofollow">docs</a> it should work to combine <code>@property</code> and <code>@abc.abstractmethod</code> so the following should work in python3.3:</p>
  
  <pre><code>import abc
  
  class FooBase(metaclass=abc.ABCMeta):
  
      @property
      @abc.abstractmethod
      def greet(self):
          """ must be implemented in order to instantiate """
          pass
  
      @property
      def greet_comparison(self):
          """ must be implemented in order to instantiate """
          return 'hello'
  
  class Foo(FooBase):
      def greet(self):
          return 'hello'
  </code></pre>
  
  <p>test the implementation:</p>
  
  <pre><code>In [6]: foo = Foo()
  In [7]: foo.greet
  Out[7]: &lt;bound method Foo.greet of &lt;__main__.Foo object at 0x7f935a971f10&gt;&gt;
  
  In [8]: foo.greet()
  Out[8]: 'hello'
  </code></pre>
  
  <p>so it is obviously not a property, because then it should work like that:</p>
  
  <pre><code>In [9]: foo.greet_comparison
  Out[9]: 'hello'
  </code></pre>
  
  <p>Maybe I'm to stupid or it simply doesn't work, somebody has an idea?</p>