python - 如何使用字符串定义函数名
问题描述
我试图创建一个更动态的程序,在其中我根据变量字符串定义函数的名称。
尝试使用如下变量定义函数:
__func_name__ = "fun"
def __func_name__():
print('Hello from ' + __func_name__)
fun()
想要这个输出:
Hello from fun
我发现的唯一示例是: 如何使用 python 从字符串定义函数
解决方案
您可以更新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__"]()
推荐阅读
- javascript - 如何阻止超脚本覆盖我的输入?佩里尔
- python - Pyinstaller 无法执行脚本:FileNotFoundError:没有文件或目录:'C:\\Users\\etc'
- python - 没有这样的元素:使用 Selenium 和 Python 单击按钮时无法定位元素错误
- c# - 如何根据字符串的高度和宽度绘制矩形(作为背景)?
- go - 如何在 golang 中创建一个指定路径的空文件。假设在 $HOME/newFile.txt
- javascript - document.execCommand 有哪些替代方法来选择和复制文本?
- java - 当在场景大纲末尾定义 Cucumber 值时,会出现错误
- reactjs - 我应该使用 Ant.Design 还是 MaterialUI 还是 React-Bootstrap?
- aws-api-gateway - AWS Api Gateway 中的速度:如何访问对象数组
- youtube-api - 我的 API 密钥已因“逆向工程”API 而被撤销?我密切关注文档