python - 如何使用字符串定义函数名

标签 python python-3.x

我正在尝试创建一个更加动态的程序,在其中根据变量字符串定义函数的名称。

尝试使用如下变量定义函数:

__func_name__ = "fun"

def __func_name__():
  print('Hello from ' + __func_name__)

fun()

想要输出:

Hello from fun

我发现的唯一例子是: how to define a function from a string using python

最佳答案

您可以更新全局:

>>> globals()["my_function_name"] = lambda x: x + 1
>>> my_function_name(10)
11

但通常使用具有相关功能的字典更方便:

my_func_dict = {
    "__func_name__" : __func_name__,
}

def __func_name__():
  print('Hello')

然后使用字典以名称作为键来取回函数:

my_func_dict["__func_name__"]()

关于python - 如何使用字符串定义函数名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55915109/

相关文章:

python - Python 中的 str 函数和百分比运算符之间有区别吗

python - 以 UTF-32 编码的单个字符的长度

python - While 循环在语音转文本聊天机器人中未按预期工作

python - GraphQL/Graphene 用于 Django 模板中的后端调用

python - 零个或一个量词 (`?` ) 似乎并不贪婪

python - 'utf 8' codec can' t 解码字节 0xb5 在位置 0 : invalid start byte

python - 添加到 Pandas DataFrame 时出现 datetime64 错误

python - Python 3.0 的哪些特性会改变你的日常编码?

python - math.sqrt 结果 TypeError :'float' 对象无法解释为整数

python - 模块重新正则表达式在控制台窗口中按预期工作,但不是 "in eclipse"