我有一个在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
的值并将其存储在列表中。我不确定该怎么做。我希望这里有足够的信息。
答案 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)