Python3のsetter補足

おさらい

前に書いた記事で、python3で@hoge.setterを使って、

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)

こんなコードを書いた。これの補足。

実は

このコードだが、@propertyが無いと動かないという微妙な仕様である。setterだけ欲しい場合も割とあると思うんだがなぁ…まぁ@propertyがあると困る、というシチュはそんなに無いとは思われるが。