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

时间:2019-04-30 06:29:55

标签: 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

2 个答案:

答案 0 :(得分:1)

您可以更新globals

>>> 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')

然后使用dict以名称作为键将功能取回:

my_func_dict["__func_name__"]()

答案 1 :(得分:0)

这也应该做到,使用globals动态更新函数名称。

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

globals()['fun'] = __func_name__

fun()

输出将为

Hello from __func_name__