usual = UsualWayOfUse()
usual.x = 1
print usual.x
print '=' * 60
class KlassPropertyMeta(type):
def fgetx(self):
base = self.__base__
if base != object:
return base.fgetx() + self._x
return self._x
x = property(fgetx, None, None)
class KlassProperty(object):
__metaclass__ = KlassPropertyMeta
_x = 1
class DerivedKlassProperty(KlassProperty):
_x = 2
print KlassProperty.x
print DerivedKlassProperty.x
kp = KlassProperty()
dkp = DerivedKlassProperty()
print kp
print dkp
実行結果
[nori@asama]~/Desktop/study/python/experiment% python classproperty.py
1
============================================================
1
3
<__main__.KlassProperty object at 0x2aaaaab48e50>
<__main__.DerivedKlassProperty object at 0x2aaaaab48e90>
0 件のコメント:
コメントを投稿