据我所知,python中没有对int
s或float
s或类似数据的引用。尽管如此,我正在研究一个问题,如果我可以做一些
a=1
b=2
c=3
ref_dict={'field1':ref_to_var_a,'field2':ref_to_var_b,'field3':ref_to_var_c}
然后呢
^{pr2}$所以如果用户打电话
update('field2',5)
b
的值将变为5。在
有什么办法可以做到吗?谢谢。在
作为对阿班内特有用的评论和回答的回应,我真正想做的是——惊喜,惊喜——更复杂。我正在用wxPython构建一个GUI。我有许多textcrl控件,每个控件都将设置一个变量的值。当然,我可以为每个控件编写一个方法,也可以编写一个方法,看起来像
def handleTextEvent(self,event):
if (event.GetEventObject() == widget1):
a=int(event.GetString)
elif (event.GetEventObject() == widget2):
b= ....
我想你也明白我为什么不喜欢这个了。如果我能做一个简短的功能就好了,比如:
def handleTextEvent(self,event):
ref_dict[event.GetEventObject()]=int(event.GetString())
是的,我对wxPython很陌生。在
谢谢!在
这是可能的,但几乎总是个坏主意。在
假设}是全局变量:
a
、b
、和{如果你真的想要,你甚至可以创建“引用包装器”:
^{pr2}$如果你想包装那些不在
globals
中的东西,比如来自另一个模块的全局变量、类属性、实例属性等等。?创建更多引用包装类型:或者你可以放弃类而只存储setter函数
那么,如果这是个坏主意,正确的答案是什么?在
如果不知道自己想做什么,很难说,但以下是一些可能性:
dict
个充满值的变量,而不是一堆单独的变量。在对于你的具体情况,我想你想要的是第二个。这是标准的模型-视图-控制器设计。或者,如果您不喜欢MVC、模型模板视图或其他一些变体(这里不需要控制器)。在
你的模型是一堆分散的全局变量,这就是为什么很难将它与视图联系起来。最简单的答案是将模型表示为对象。然后给视图(或它的控制器)一个对这个模型的引用,这很简单,就完成了。在
相关问题 更多 >
编程相关推荐