调用函数后更改函数的参数值

时间:2014-12-03 20:56:03

标签: python function arguments

我有一个在for循环中多次调用的函数,如下所示:

def drawPatch(win, x, y, colour):
    pass

cycling_colours = ['red', 'green', 'yellow', 'blue']

for i in range(25):
    for j in cycling_colours:
        drawPatch(win, x, y, j)

colour取自列表,并在每次迭代时更改colour drawPatch。我想要做的是每次迭代获取colour的值并将其存储在列表中。我不确定该怎么做。我希望这里有足够的信息。

2 个答案:

答案 0 :(得分:2)

j保存每种颜色的值。因此,您需要做的就是将j附加到列表中:

cycling_colours = ['red', 'green', 'yellow', 'blue']
colors = []  # List to hold the values of j

for i in range(25):
    for j in cycling_colours:
        drawPatch(win, x, y, j)
        colors.append(j)

最后,colors列表将包含您传递给drawPatch的所有颜色(函数内的colour的每个值)。

答案 1 :(得分:1)

您可以使用一个对象。几乎对象的定义是一堆函数,与状态变量配对。

对象比全局变量更受欢迎,因为它们是自包含的,你可以传递它们。

class DrawTool:

    def __init__(self):
        self.colour_list = []   # Initialize an empty state

    def drawPatch(self, win, x, y, colour):
        self.colour_list.append(colour) # Modify the state

        #TODO: more code here
        pass


cycling_colours = ['red', 'green', 'yellow', 'blue']
my_tool = DrawTool()

for i in range(25):
    for j in cycling_colours:
        my_tool.drawPatch(win, x, y, j)