【发布时间】:2019-09-18 18:31:04
【问题描述】:
我正在尝试创建一个更动态的程序,在其中我根据变量字符串定义函数的名称。
尝试使用这样的变量定义函数:
__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
【问题讨论】:
-
您需要使用
exec。但是不要。这不是一件好事。 -
@rdas 为什么不是一件好事?
-
这不是“更动态的”——它很糟糕。不要这样做。
-
除了对 RCE 来说是一个巨大的风险之外,它并不比普通代码更好:stackoverflow.com/questions/1933451/…
-
@isethi 为什么你认为动态命名函数是你应该做的事情,为什么 Python 应该允许你这样做?这很危险/几乎毫无意义...... Python 确实会尽量避免让你在脚上开枪......(虽然 - 如果你真的想......它确实会让你......)
标签: python python-3.x