Read-onlyなclasspropertyデコレータの実装
class classproperty(property):
def __init__(self, fget):
super(classproperty, self).__init__(fget)
self.__doc__ = fget.__doc__
def __get__(desc, self, cls):
return desc.fget(cls)
class A(object):
@classproperty
def __tablename__(cls):
return cls.__name__.lower()
class B(A):
pass
print(A.__tablename__)
print(B.__tablename__)