読み取り専用なプロパティを生成する

入門Python3 6.8


プロパティの続きです。

プロパティを定義する時にセッターを用意しなければ読み出し専用のプロパティを生成することができます。

class Foo():
    @property
    def bar(self):
        return "bar"

foo = Foo()
print(foo.bar)

foo.bar = "new bar" # ここで例外
$ py main.py
bar
Traceback (most recent call last):
  File "main.py", line 11, in <module>
    foo.bar = "new bar"
AttributeError: can't set attribute