gpt4 book ai didi

Python:如何创建一个包含一些函数的字典,而不在赋值时运行它们?

转载 作者:行者123 更新时间:2023-11-28 22:47:28 25 4
gpt4 key购买 nike

我有以下字典,其中包含一堆函数及其键,如下例所示:

function_list = {0:power_off(), 1:image_capture(100,1000,100,100), 2:video_record(100,100), 3:image_settings(), 4:video_settings(), 5:device_settings()}

实际上大约有 5 倍,但我为这篇文章简化了它......我的问题是,我应该如何进行,以便在定义 function_list 字典时,它不会运行其内容中的所有函数,而只是在我以下列方式调用它们时运行: function_list[current_selection],基于current_selection参数的值。

我这样做是为了避免冗长复杂的 if...elif 语句,例如:

if current_selection == 0:
power_off()
elif current_selection == 1:
image_capture(100,1000,100,100)
elif current_selection ==2:
video_record(100,100)
... and so on ...

如果有人能帮助我,我将不胜感激。谢谢!

最佳答案

试试这个:

function_list = {0:{"func":power_off},
1:{"func":image_capture, "args":(100,1000,100,100)},
2:{"func":video_record, "args":(100,100)},
3:{"func":image_settings},
4:{"func":video_settings},
5:{"func":device_settings} }

f = function_list[current_selection]
if "args" in f:
f["func"](*f["args"])
else:
f["func"]()

关于Python:如何创建一个包含一些函数的字典,而不在赋值时运行它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26204815/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com