Заблокировать изменяемые объекты как неизменяемые в Python

Как «заблокировать» объект в Python?

Скажем, у меня есть:

class Foo:
  def __init__(self):
    self.bar = []
    self.qnx = 10

Я бы модифицировал foo столько, сколько захочу:

foo = Foo()
foo.bar.append('blah')
foo.qnx = 20

Но тогда я хотел бы иметь возможность "блокировать" его так, чтобы при попытке

lock(foo)
foo.bar.append('blah')  # raises some exception.
foo.qnx = 20            # raises some exception.

Возможно ли это в Питон?

11
задан jamylak 28 May 2012 в 02:55
поделиться