gpt4 book ai didi

python - 调用未知的 Python 函数

转载 作者:太空狗 更新时间:2023-10-29 22:00:07 25 4
gpt4 key购买 nike

这是我能为该主题想出的最佳名称,但我的所有搜索都没有产生与该问题相关的信息。

如何从字符串调用函数,即

functions_to_call = ["func_1", "func_2", "func_3"]

for f in functions_to_call:
call f

最佳答案

您可以使用 python 内置的 locals() 来获取本地声明,例如:

def f():
print "Hello, world"

def g():
print "Goodbye, world"

for fname in ["f", "g"]:
fn = locals()[fname]
print "Calling %s" % (fname)
fn()

您可以使用“imp”模块从用户指定的 python 文件加载函数,这为您提供了更多的灵 active 。

使用 locals() 确保您不能调用通用 python,而使用 eval,您最终可能会导致用户将您的字符串设置为不合适的内容,例如:

f = 'open("/etc/passwd").readlines'
print eval(f+"()")

或类似的东西,最终你的程序会做一些你认为不可能的事情。对 locals() 和字典使用类似的技巧一般只会给攻击者 KeyErrors。

关于python - 调用未知的 Python 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/744626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com