2024-05-29 06:40:12 发布
网友
这是关于Rasberry PI,但在这种情况下,这无关紧要。 我有9个功能,比如:
for_1..9()
这些功能打开4位LED显示屏的一部分。但是我想对显示器上的每个数字使用一个按钮,所以每次按下按钮时我都要调用不同的函数。不知道怎么可能。在
函数如下所示:
def for_1(): GPIO.output(15.HIGH) GPIO.output(18.HIGH) ....
像这样的短信:
您可以使用动态方式为不同的迭代周期调用每个函数。在
for_1
for_9
getattr
下面的代码假设函数和迭代逻辑在同一个模块中。但是,您可以在单独的文件中定义函数,并将它们导入迭代逻辑脚本中。在
import sys thismodule = sys.modules[__name__] #This fetches the current module refrence def for_1(): return 1 for i in range(1, 10): func = getattr(thismodule, "for_{}".format(i)) func() #This will invoke for_1 ... for_9
你可以像这样把函数放在iterable中
def f(): return 1 def g(): return 2 for fn in [f, g]: print(fn()) # 1 # 2
只需将所需的函数放入一个可以迭代的容器中,然后调用它们。在
试试这个:
if Pin.input(number of pin): for i in range(0, 9): globals()['for_'+str(i)]()
或者
您可以使用动态方式为不同的迭代周期调用每个函数。在
for_1
开始。。。for_9
getattr
获取函数并最终调用它。在下面的代码假设函数和迭代逻辑在同一个模块中。但是,您可以在单独的文件中定义函数,并将它们导入迭代逻辑脚本中。在
你可以像这样把函数放在iterable中
只需将所需的函数放入一个可以迭代的容器中,然后调用它们。在
试试这个:
或者
^{pr2}$相关问题 更多 >
编程相关推荐