Python 动态创建的方法参数
我正在使用迭代器变量Python 动态创建的方法参数,python,methods,Python,Methods,我正在使用迭代器变量I在循环中创建一系列按钮。在这个循环中,我定义了一个方法click() i=0 而(i
I
在循环中创建一系列按钮。在这个循环中,我定义了一个方法click()
i=0
而(i<10):
按钮=按钮()
def click():
无热法(一)
button.onClick=单击
i+=1
问题是
i
似乎总是9(这是有道理的)。我需要I
来“坚持”为每个方法创建它的迭代。我觉得我不仅错过了一些明显的东西,而且我还问了一个重复的问题。我只是不知道要搜索什么。在循环中定义的函数中使用默认参数。默认值将在定义函数时保留i
的值,即使以后重新定义:
for i in range(10): # do you really need to be using a while loop?
def click(i=i): # use a default argument here, to save the current i value
anotherMethod(i) # this refers to the argument i, not the loop variable i
button.onClick = click
在循环中定义的函数中使用默认参数。默认值将在定义函数时保留
i
的值,即使以后重新定义:
for i in range(10): # do you really need to be using a while loop?
def click(i=i): # use a default argument here, to save the current i value
anotherMethod(i) # this refers to the argument i, not the loop variable i
button.onClick = click
button=new button()
无效。此外,问题中的代码会导致无限循环。更重要的是,您没有在任何地方使用按钮
变量,这使我认为您实际上是在将按钮放在循环之后的GUI中。您也没有递增i
。Addi+=1
i更正了代码,ffr.button=new button()
无效。此外,问题中的代码会导致无限循环。更重要的是,您没有在任何地方使用按钮
变量,这使我认为您实际上是在将按钮放在循环之后的GUI中。您也没有递增i
。添加i+=1
我更正了代码,ffr。谢谢!我在问题中输入的一小段代码只是用来解释我想要什么的(无可否认,写得很糟糕)。或多或少的伪代码。谢谢!我在问题中输入的一小段代码只是用来解释我想要什么的(无可否认,写得很糟糕)。或多或少的伪代码。