propertyが使えない原因
propertyが使えない理由は、propertyが新スタイルのクラスを要求するからだと分かった。
http://www.python.jp/doc/release/reference/datamodel.html#newstyle
要約すると、Pythonは2.1から新クラスを導入したが、互換性維持の為、新クラスを利用する場合は、objectを継承する必要がある、ということらしい。
あと、Python3では新クラスに最初から対応しているらしい上に、新しいpropertyの書き方が実装されてる。
class Class: def __init__(self, a): self._a = a @property def a(self): return self._a @a.setter def a(self, v): if v < 20: self._a = v else: print("ERROR") if __name__ == "__main__": c = Class(10) c.a = 100 print(c.a)