ドキュメントによると、結合@property
して機能@abc.abstractmethod
するはずなので、python3.3で次のように機能するはずです。
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'
実装をテストします。
In [6]: foo = Foo()
In [7]: foo.greet
Out[7]: <bound method Foo.greet of <__main__.Foo object at 0x7f935a971f10>>
In [8]: foo.greet()
Out[8]: 'hello'
したがって、明らかにプロパティではありません。そのように機能するはずだからです。
In [9]: foo.greet_comparison
Out[9]: 'hello'
たぶん私は愚かなのか、単にうまくいかないのか、誰かがアイデアを持っていますか?