如何在初始化过程中初始化包含自定义函数而没有 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]()
这对你有用。
短版:
- 如何将函数存储在列表中,并且仅在使用它们在列表中的索引位置调用它们时才执行它们?
长版:
所以我正在编写一个程序来掷用户选择数量的六面骰子,将结果存储在列表中,然后在字典中组织结果/数据。
收集数据后,程序会为用户提供 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]()
这对你有用。