2012-09-17 62 views
0

我工作的一个功能,可自动采取一些代码,我已经写在蟒蛇创建校验中发现其他功能的源代码上传一起。一个Python模块

的问题是我需要动态地发现同一模块内的其他功能,我现在愿意加入,

这让我们可以继续写更多的代码,并将它自动更新。

TL:DR;为相同源文件中的函数制作自动源代码校验和上传工具。我如何找到所有其他功能?

如:

def func1(y): 
    some random stuff..... 
    return x 

def autochecksum(): 
    for func in module: 
     checksum = md5(inspect.code(func)).hexdigest 
     othermodule.upload(inspect.code(func), checksum) 

最近我可以得到为(纯侥幸所有的函数名开始的get_):

def update_jms_directory(): 
    import appdata.transfer.uploads as uploads 
    for function in dir(uploads): 
     if function.startswith("get_"): 
      package_function() 
+0

什么是你的问题? – 2012-09-17 13:59:36

+0

你正在研究错误的抽象层次。函数对象与源代码没有1-1对应关系。无论是用字节码(你所需要的环境太),但有*是*字节码所有的Python功能(虽然不是真正为装饰这实际上是对象)。你也不想共享的字节码,因为它不是在所有便携式和一个可以平凡创建字节码解释器出现segfaults。为什么不在文件级别工作? – delnan

+0

的autochecksum功能正在被写入每个函数的源代码发送到PostgreSQL服务器与校验,以确保它是我们如何指望它在另一端。这个想法是我在与源文件 – Jharwood

回答