2014-12-03 76 views
0

我有一個是內部的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從列表中取出並改變colourdrawPatch每次迭代。我想要做的是每次迭代獲取colour的值並將其存儲在列表中。我不知道如何去做這件事。我希望這裏有足夠的信息。

+0

既然你沒有完全指定實際的問題,我不太確定你實際要求什麼。你是否要求我們幫助你實現只有'pass'語句的'drawPatch'? (): – 2014-12-03 21:00:32

回答

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每個值)的顏色。

+0

34秒我可以接受你的回答隊友(: )答案太簡單了,我用inspect()和各種瘋狂的廢話搞亂了,我需要提醒自己「如果感覺瘋了,它可能是瘋了「 – 2014-12-03 21:10:27

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)