我做科學編程,經常想要顯示用戶提示和變量對,讓他們編輯變量,然後用新變量進行計算。我經常這樣做,我寫了一個wxPython類來將這些代碼移出主程序。用變量類型(string,float,int),提示符和變量的當前值爲每個變量設置一個列表。然後將所有這些列表放在一個大列表中,我的實用程序創建一個整齊的wxPython面板,其中包含提示和可編輯的當前值。如何向Python中的函數傳遞大量變量?
當我開始時,我只有幾個變量,所以我會寫出每個變量。
s='this is a string'; i=1; f=3.14
my_list=[ ['s','your string here',s], ['i','your int here',i], ['f','your float here'],]
input_panel = Input(my_list)
# the rest of the window is created, the input_panel is added to the window, the user is
# allowed to make choices, and control returns when the user hits the calculate button
s,i,f = input_panel.results() # the .results() function returns the values in a list
現在我想使用這個例程的很多變量(10-30),這種方法是打破。我可以使用list.append()語句在多行上創建輸入列表。但是,當代碼從函數返回時,我會得到這個需要解壓縮到正確變量中的巨大列表。這很難管理,看起來很容易讓輸入列表和輸出列表不同步。更糟的是,它看起來很爛。
什麼是將大量變量傳遞給Python中的一個函數的最佳方式,以便可以對它們進行編輯,然後獲取變量以便我可以在程序的其餘部分使用它們?
如果我可以通過引用將變量傳遞給函數,那麼用戶可以改變它們,也可以不改變,並且一旦程序從函數返回,我會使用這些值。我只需要在多行中構建輸入列表,並且不會有任何輸入列表與輸出列表不同步的可能性。但是Python不允許這樣做。
我是否應該將大列表分解爲更小的列表,然後將它們合併爲大列表來傳入和退出函數?或者這只是添加更多的地方來犯錯誤?
無法計算我在生活中所做的「搜索屬性」類的數量。 +1 – 2009-05-26 20:27:57
絕對從一個類開始。然後,您可能會發現一些可以拆分爲多個類的數據,或可以移入該類的行爲。但是創建參數對象是第一步。 – 2009-05-26 20:58:37