我正在尝试创建一个更具动态性的程序,其中我基于变量字符串定义了函数的名称。
尝试使用如下变量定义函数:
__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
答案 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__