你如何从变量中调用函数?

How do you call a Function from a Variable? (Python)

在你要求复制之前我研究了以下内容:使用变量的python函数调用

从具有函数名称的字符串调用模块的函数

在python中按变量名执行函数

https://ubuntuforums.org/showthread.php?T=1110989

还有更多,但没有运气。

我正在开发一个游戏。现在我正在处理保存/加载功能,但是我什么也没得到。

我想从另一个py或txt文件中提取一段文本,并让我的主py文件读取该文本,然后根据第二个文件中的文本字符串调用函数。

脚本1:

1
2
3
4
5
6
7
8
9
10
#imports

from script2 import SaveCode

#Code

def Test():
    print('Hello, World!')

callable(SaveCode)

脚本2:

1
SaveCode = Test()

这行不通。有人能帮我吗?


除非使用不推荐使用的evalexec评估该字符串,否则这不会起作用。

据我所知,您在script2中有一个字符串,并且希望基于该字符串在script1中执行一个函数。您可以做的是定义一个字典,该字典包含您已映射到要调用的函数的字符串:

在脚本1中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#imports

from script2 import SaveCode

#Code

def Test():
    print('Hello, World!')

functions = {
    'Test': Test
}

# Assuming that SaveCode = 'Test' in your second script,
# look up the corresponding function
function_to_run = functions[SaveCode]
# and call it
function_to_run() # prints Hello, World!

在脚本2中:

1
SaveCode = 'Test'