你需要把它变成一个属性...:例如,在...中 __init__
self._some_field = []
Run Code Online (Sandbox Code Playgroud)
然后在课堂上:
@property
def some_field(self):
return self._some_field
Run Code Online (Sandbox Code Playgroud)
请注意,这并没有使列表本身不变:什么会失败是分配公司,比如,
self.some_field = 'bah'
Run Code Online (Sandbox Code Playgroud)
不是说变种人的召唤,比如说,
self.some_field.append('blah')
Run Code Online (Sandbox Code Playgroud)
如果你想让字段不可变,根据定义,它不能是一个列表(因为列表是一个可变序列) - 它必须是你需要为此目的定义的其他类型的序列(一个不可变的序列).