据我了解,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}
进而
def update(field,value):
ref_dict[field]=value
所以如果用户打电话
update('field2',5)
的值b
将变为 5。
有什么办法可以做到这一点?谢谢。
为了回应 arbanert 的有用评论和回答,我真正想做的是 - 惊喜,惊喜 - 更复杂。我正在用 wxPython 构建一个 GUI。我有许多 TextCtrl 控件,每个控件都会设置一个变量的值。当然,我可以为每个控件编写一个方法,或者我可以编写一个方法,看起来像
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 很陌生。
谢谢!