我有一根弦,像:
str = "pwd.getpwuid(1000)"
现在,如果我尝试eval(),它可能会引发一个异常,因为我还没有导入pwd(或者可能没有导入pwd)。你知道吗
所以我决定编写一个解析器:在“.”上拆分字符串并得到一个列表:
lis = ["pwd", "getpwuid(1000)"]
然后取lis[0]
,如果它不包含我调用的"("
或")"
importlib.import_module(lis[0])
然后是评估。你知道吗
我能把同样的事情做得更好吗?你知道吗
Tags:
用正则表达式拆分lis[2]中函数的positional参数和lis[3]中的named参数如何
找到了解决方案:
我必须将字符串更改为包含函数体:
这个的eval()没问题!你知道吗
(lambda或def明显相同)
相关问题 更多 >
编程相关推荐