propertyを継承する

まずpropertyはclassのようです。なので継承して、次のようにgetterをはじめからproperty側で定めるようなことができます。

  def test_extends_property(self):
        class getclassname_property(property):
            def __init__(self):
                property.__init__(self, self.getname_from_calledclass)
            def getname_from_calledclass(self, calledclass):
                return calledclass.__class__.__name__
        class aClass(object):
            name = getclassname_property()
        a = aClass()
        self.assertEqual('aClass', a.name)