【发布时间】:2015-01-29 10:47:29
【问题描述】:
我正在尝试在 Python 中定义一个函数。它应该是这样的:
def myfunction(Peter_1, Amy_1, Peter_2, Amy_2, Peter_3, Amy_3,....Peter_50,Amy_50):
Peter_1 = 100
Amy_1 = 20
Peter_2 = 90
Amy_2 = 4
...
...
我正在使用一个用 Python 编写的小软件进行优化。软件是这样的,我定义myfunction之后,我应该写,
parameter1 = Parameter("Peter_1", (90,100),1)
parameter2 = Parameter("Amy_1", (15,25),1)
...
...
parameter99 = Parameter("Peter_50", (70,100),1)
parameter100 = Parameter("Amy_50", (15,25),1)
Parameter 是软件定义函数,Parameter 的第一个参数应该是一个字符串,并且必须是我在myfunction 中定义的名称。然后软件知道第一个需要优化的参数是Peter_1。
我不想输入所有 100 个参数,有人可以帮我吗?
【问题讨论】:
-
“出于某种原因” - 什么原因?!您绝对应该将参数写为列表或元组,例如
def myfunction(peters, amys)或def myfunction(*people)。定义在函数内部立即重新分配的参数也没什么意义。 -
为什么不把它们写成列表呢?它会给你同样的结果......除非你能以某种方式说服我们它不会。如果是因为您的参数不在调用上下文的列表中,您可以使用 *args 将它们打包在函数定义中,反之亦然。否则,您必须采取什么令人信服的论点?
-
是的,输入100个参数真的很愚蠢,同意:)