如何将函数放入 Python 的列表中?
How do I put functions in a list in Python?
我想在 Python 中使用 switch 语句,但由于 python 中没有 switch 语句,我想使用函数列表。但是,当我定义列表时,函数被执行了。
这是我的代码:
shapes = [drawSquare(), drawRectangle(), myTurtle.circle(10), drawTriangle(), drawStar()]
这是使用 turtle 的输出:
如何在没有 python 运行 函数的情况下定义函数列表?
去掉括号()
例如:
shapes = [drawSquare, drawRectangle, myTurtle.circle, drawTriangle, drawStar]
演示:
def add(a,b):
return a + b
def sub(a,b):
return a - b
lst = [add, sub]
for i in lst:
print(i(3,2))
通过在调用函数的函数名称后添加 ()
。要获得可调用函数的列表,只需将示例更改为:
shapes = [drawSquare, drawRectangle, myTurtle.circle, drawTriangle, drawStar]
并调用其中一种形状 shapes[pos](args)
例如根据您的示例绘制圆圈:shapes[2](10)
(对于那些不知道列表位置从 0 开始的人)。
您需要传递对列表中函数 (drawSquare
) 的引用,而不是函数 (drawSquare()
) 的引用,因为您不希望函数恰好在它调用的那一刻被调用已宣布。
shapes = [drawSquare, drawRectangle, myTurtle.circle, drawTriangle, drawStar]
您稍后可以使用
调用函数
[i(10) for i in shapes]
或者,如果您想为每个函数提供不同的参数,您可以使用 for 循环。
我想在 Python 中使用 switch 语句,但由于 python 中没有 switch 语句,我想使用函数列表。但是,当我定义列表时,函数被执行了。
这是我的代码:
shapes = [drawSquare(), drawRectangle(), myTurtle.circle(10), drawTriangle(), drawStar()]
这是使用 turtle 的输出:
如何在没有 python 运行 函数的情况下定义函数列表?
去掉括号()
例如:
shapes = [drawSquare, drawRectangle, myTurtle.circle, drawTriangle, drawStar]
演示:
def add(a,b):
return a + b
def sub(a,b):
return a - b
lst = [add, sub]
for i in lst:
print(i(3,2))
通过在调用函数的函数名称后添加 ()
。要获得可调用函数的列表,只需将示例更改为:
shapes = [drawSquare, drawRectangle, myTurtle.circle, drawTriangle, drawStar]
并调用其中一种形状 shapes[pos](args)
例如根据您的示例绘制圆圈:shapes[2](10)
(对于那些不知道列表位置从 0 开始的人)。
您需要传递对列表中函数 (drawSquare
) 的引用,而不是函数 (drawSquare()
) 的引用,因为您不希望函数恰好在它调用的那一刻被调用已宣布。
shapes = [drawSquare, drawRectangle, myTurtle.circle, drawTriangle, drawStar]
您稍后可以使用
调用函数[i(10) for i in shapes]
或者,如果您想为每个函数提供不同的参数,您可以使用 for 循环。