如何在初始化过程中初始化包含自定义函数而没有 python 运行 那些函数的列表?

How to initilise a list that contains custom functions without python running those functions during initialisation?

短版:

长版:

所以我正在编写一个程序来掷用户选择数量的六面骰子,将结果存储在列表中,然后在字典中组织结果/数据。

收集数据后,程序会为用户提供 0-2 选项供其选择,并要求用户键入与他们想要的选项相对应的数字。

在用户输入之后,一个变量,比方说 TT,被分配给它。我希望程序通过使用 TT 作为该函数在列表中的索引位置来使用 TT 来识别 运行 包含在名为 "Executable_options" 的列表中的哪个函数。

我遇到的问题是,在定义函数之后,我必须将包含函数的列表放在一行上,并且当我初始化列表时,它会遍历并按顺序执行其中的所有函数,当我不想这样。我只是希望他们在列表中,以便日后致电。

我尝试在没有任何函数的情况下初始化列表,然后单独附加函数,但每次将函数附加到列表时,它也会被执行。

def results():
def Rolling_thunder():
def roll_again():

函数包含一些东西,但对于手头的问题不需要显示

Executable_options = []
Executable_options.append(results())
Executable_options.append(Rolling_thunder())
Executable_options.append(roll_again)

options = len(Executable_options)

我对 Python 比较陌生,所以我还在摸索。我已尝试在现有帖子中搜索此问题的答案,但找不到任何内容,所以我假设我只是在搜索中使用了错误的关键字。

非常感谢您花时间阅读本文并提供答案。

编辑:代码现在有效

函数名称末尾的 () 调用它 - 即 results() 是对 results 方法的调用。

无需调用即可简单地附加到列表中 - 即:

Executable_options.append(results)

然后您可以通过以下方式调用它:

Executable_options[0]()

根据您给定的数据,代码将如下所示:

def results():
def Rolling_thunder():
def roll_again():

Executable_options = []
Executable_options.append(results)
Executable_options.append(Rolling_thunder)
Executable_options.append(roll_again)

for i in range(0,len(Executable_options)):
    Executable_options[i]()

这对你有用。