2013-03-06 52 views
-3

我想从用户可能写入和上传的python代码片段获取函数名称。我想获得该函数的名字,因为我必须把它的并行处理我想从我写的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 

在这里,我知道高清名字..但说这是在通过某个用户上传Python文件...我会有另一个脚本来读取上传的文件并返回当前功能的名称?任何建议如何做到这一点?实际上,我有做任何分解平行处理任何形式..所以,如果有任何其他方式做到这一点,请让我知道,因为我真的卡住..谢谢..请不必思想的代码它只是为了有一些代码。

+2

我重读了你的问题三次,我无法正视它的尾巴。 – NPE 2013-03-06 17:42:20

+1

为什么是分号?如果你使用它们,为什么在你使用'print'语句时停下来? – mgilson 2013-03-06 17:47:45

+0

你想以某种方式编程调用名称为字符串的函数吗? – askewchan 2013-03-06 17:48:17

回答

1

鉴于上面的代码作为一个模块,我能得到的使用inspect函数的名称:

import yourmodule 
import inspect 

print inspect.getmembers(yourmodule,inspect.isfunction) 

这应该给你所有的功能,而不是他们的名字。你可以很容易地从该函数的函数名,但:这发生在我是添加在文件中的函数列表

print [f.__name__ for f in inspect.getmembers(yourmodule,inspect.isfunction)] 
+0

感谢第一部分工作得很好...我有打印问题[f .__ name__ for f part – user2079248 2013-03-06 19:00:28

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() 

请让我知道,如果这是你需要的方法。 此致敬礼。

+0

像我说过的那样,它会是用户上传的一段代码。我不知道上传的python文件中的函数。它正在尝试编写的程序将查找文件并检索函数的名称。 – user2079248 2013-03-06 18:05:54