據我所知,python中沒有引用int
s或float
或類似的數據。不過,我對一個問題的工作哪裏會是對我來說非常方便,如果我可以做類似python引用float,int等
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用。
謝謝!
如果您證明了爲什麼這樣做會很方便,那麼回答會更容易 - 因爲答案可能是「您並不真的想這樣做」。 – abarnert
重點是強迫你從合理的數據結構開始 - 如果你真的想寫這個代碼,它會看起來像'structure.update('field',5)' –
@JochenRitzel:+1。但是'structure.field = 5'在大多數情況下更好...... – abarnert