【发布时间】:2010-12-29 05:51:48
【问题描述】:
假设我有一个类对外部世界表现为一个 int,但实际上它是一个可变对象,在多个结构中具有固定位置。如果 n 是我的对象,我现在可以通过写 n.update(34) 来更新它,但我发现我总是想改写 n = 34。我浏览了http://docs.python.org/reference/datamodel.html,并没有看到任何类似于 __assign__ 或 __value__ 的属性,它可以让我捕获= 运算符并允许我更新我的对象而不是为变量 n 分配一个 int,抛出我的对象远离。更好的是,当一个可变对象位于元组 t = (m, n) 中时,我想用 t[1] = 34 更新我的可变对象,但 Python 认为这是在尝试修改不可变对象。
所以我猜答案是,根据我能够理解的那份文档的一小部分,我正在尝试的不是 Pythonic。所以如果我不能按照我想要的方式去做,那么下一个最好的事情是什么?这样,如果有一天有人必须维护我的代码,它就不会过于冒犯。
【问题讨论】:
标签: python class object default internals