Вам нужно сделать его действительно свойством ...: например, в __init__
self._some_field = []
, а затем в теле класса:
@property
def some_field(self):
return self._some_field
Примечание.что это не делает сам список неизменным: то, что потерпит неудачу, это назначение , как, скажем,
self.some_field = 'bah'
не вызовмутатора, как, скажем,
self.some_field.append('blah')
Если вы хотите сделать поле неизменным, оно не может быть списком по определению (поскольку список является изменяемой последовательностью) - это должна быть какая-то другаятип последовательности (неизменяемый), который необходимо определить для этой цели.