Python动态函数到脚本的转换

Python动态函数到脚本的转换,python,Python,是否有一种相当自然的方式将python函数转换为独立脚本?比如: def f(): # some long and involved computation script = function_to_script(f) # now script is some sort of closure, # which can be run in a separate process

是否有一种相当自然的方式将python函数转换为独立脚本?比如:

def f(): 
    # some long and involved computation

script = function_to_script(f) # now script is some sort of closure, 
                               # which can be run in a separate process
                               # or even shipped over the network to a 
                               # different host
而不是像:

script = open("script.py", "wt")
script.write("#!/usr/bin/env python")
...
您可以通过在任何“对象”上定义
\uuuu call\uuuu
方法将其转换为函数(请参阅)。因此,如果您想用计算划分某些状态,只要可以对从类的最顶端到底部提供的内容进行pickle,就可以对该对象进行pickle

class MyPickledFunction(object):
    def __init__(self, *state):
        self.__state = state

    def __call__(self, *args, **kwargs):
        #stuff in here
这是最容易作弊的方法。为什么要酸洗?任何可以腌制的东西都可以毫无恐惧地发送到另一个进程。通过使用这样的对象,你正在形成一个“穷人的闭包”


(如果你想真正地pickle一个函数,有一篇关于“marshal”库的好文章。)

你在找这样的东西吗?不是真的-据我所知,Pyro是一个通过网络进行通信的图书馆。我需要一些东西来封装计算。Pyro是一个远程处理库。它允许跨进程或跨主机调用函数。函数已经封装了计算,Pyro允许您在其他地方调用这些函数,所以如果不是这样,那么您想要实现什么呢?你在找一个求值函数吗?