假设我有一个类对外部世界表现为 int,但实际上是一个可变对象,在多个结构中具有固定位置。如果 n 是我的对象,我现在可以通过n.update(34)
write 来更新它,但我发现我总是想改写n = 34
。我浏览了http://docs.python.org/reference/datamodel.html,并没有看到任何类似 __assign__ 或 __value__ 的属性,它可以让我捕获=
操作员并允许我更新我的对象而不是分配变量 n 的 int,将我的对象扔掉。更好的是,当一个 mutable 在 tuplet = (m, n)
中时,我想用 更新我的 mutable t[1] = 34
,但 Python 认为这是在尝试修改 immutable。
所以我想答案是,根据我能够理解的那份文件的一小部分,我正在尝试的不是 Pythonic。所以如果我不能按照我想要的方式去做,那么下一个最好的事情是什么?这样,如果有一天有人必须维护我的代码,它就不会过于冒犯。