Удивленный никто не указал на это:
class FooType(type):
@property
def Foo(cls):
return "foo!"
@property
def Bar(cls):
return "bar!"
class MyClass(metaclass=FooType):
pass
Works:
>>> MyClass.Foo
'foo!'
>>> MyClass.Bar
'bar!'
(для Python 2.x измените определение MyClass
на:
class MyClass(object):
__metaclass__ = FooType
)
То, что другие ответы говорят о str
, справедливо для этого решения: оно должно быть реализовано на возвращаемом типе.