我做科学编程,经常想要显示用户提示和变量对,让他们编辑变量,然后用新变量进行计算。我经常这样做,我写了一个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