我想要用户可以编写和上传的python代码片段中的函数名称。我想得到函数的名称,因为我必须发送它进行并行处理
# Function definition is here
def changeme( mylist ):
"""This changes a passed list into this function"""
mylist.append([1,2,3,4]);
print "Values inside the function: ", mylist
return
# Now you can call changeme function
mylist = [10,20,30];
changeme( mylist );
print "Values outside the function: ", mylist
在这里我知道def名称..但是说它是在一些用户上传的python文件中......我会有另一个脚本来读取上传的文件并返回存在的函数的名称?任何建议如何做到这一点?实际上我做了某种任务分解进行并行处理..所以如果有任何其他方式这样做请告诉我,因为我真的卡住了...谢谢......请不要把它的代码简单地为了有一些代码。
答案 0 :(得分:1)
鉴于上面的代码作为模块,我可以使用inspect
获取函数的名称:
import yourmodule
import inspect
print inspect.getmembers(yourmodule,inspect.isfunction)
这应该为您提供所有功能,而不是名称。您可以轻松地从函数中获取函数名称:
print [f.__name__ for f in inspect.getmembers(yourmodule,inspect.isfunction)]
答案 1 :(得分:0)
我发生的事情是在文件中添加一个包含函数的列表(毕竟它们是其他任何对象),然后在调用文件中导入此列表。所以当这个文件读取文件时,它将有一个可以迭代的可用函数列表。
function_list = [ changeme ]
from uploaded_file import function_list
#iterates over all functions and executes them, it's an example
for e in function_list:
e()
请告诉我这是否是您需要的方法。 问候。