声明存储函数的python变量,但不运行它

时间:2016-04-26 14:37:16

标签: python function variables syntax processing

我正在尝试声明一个python变量,该变量存储具有所需参数的函数,但是当我运行它时,它运行最后声明的变量。我试图将它存储在一个变量中,当我写变量名时,它运行带有相关参数的函数。它意味着在一个名为Processing:

的程序中运行
size(1000,500)
background(255,255,255)
cred = fill(255,0,0)
corange = fill(255,127,0)
cyellow = fill(255,255,0)
cgreen = fill(0,255,0)
cblue = fill(0,0,255)
cpurple = fill(143,0,255)

mcolors = [cred,corange,cyellow, cgreen, cblue, cpurple]
y=0

def palette():
    global y
    global mcolors
    for i in mcolors:
        i
        rect(0,y,20,20)
        y+=22
palette()   `

1 个答案:

答案 0 :(得分:1)

一种方法是用lambda函数包装调用:

cred = lambda: fill(255, 0, 0)

要调用它,您仍然需要(),即:

i()

但是我认为在这种情况下,最好只存储颜色值而不是实际的函数引用,即:

cred = (255, 0, 0)

这会创建值的元组(类似于不可变列表)。它与函数调用括号不同。然后您可以将它们传递给循环中的函数:

fill(*i)

星型运算符将使用元组中的值作为单独的参数而不是一个参数。