Python 保存函数以便在不重新执行的情况下重复使用

Python 保存函数以便在不重新执行的情况下重复使用,python,function,memory-management,Python,Function,Memory Management,我试图找到一些允许“保存函数”的东西,例如:一旦运行程序(包括一些函数),我们将在内存中保存函数的地址,之后,我们可以在不再执行的情况下重复使用这些函数。你能给我一些想法吗(在Python、C/C++、…)中是一般的还是特别的)。我在谷歌上搜索过这个,但我没有得到:(.我在考虑某种内存管理(分配、内存自由、驻留内存…我猜) 例如:我有一个地址为“at”(程序运行时生成)的函数,如何重用它们?! 提前感谢在Python中,函数是对象,因此您可以传递它们,分配它们,并从用于别名它们的任何标签调用它们

我试图找到一些允许“保存函数”的东西,例如:一旦运行程序(包括一些函数),我们将在内存中保存函数的地址,之后,我们可以在不再执行的情况下重复使用这些函数。你能给我一些想法吗(在Python、C/C++、…)中是一般的还是特别的)。我在谷歌上搜索过这个,但我没有得到:(.我在考虑某种内存管理(分配、内存自由、驻留内存…我猜) 例如:我有一个地址为“at”(程序运行时生成)的函数,如何重用它们?!
提前感谢

在Python中,函数是对象,因此您可以传递它们,分配它们,并从用于别名它们的任何标签调用它们。您还可以获取id(内存位置/guid等效)。如果你的意思是记忆化/延迟加载数据,那么在SO和Google上有很多资源可以用来做这类事情。它们通常看起来像:

class Foo(object):
    @staticmethod
    def get_val():
        try:
            return Foo.__val
        except AttributeError:
            #do run-once logic here, assign to Foo.__val
            return Foo.__val

这个问题很不清楚。你想解决什么问题?不执行函数调用函数意味着什么?这似乎很矛盾。我的意思是,例如,第一次(只有一次),我们在某处运行F函数。现在,在内存中,F函数存储为。我的意思是,我们可以调用F(通过地址或其他方式)无需重新执行。通常,如果程序正在运行,调用F很容易,但我需要的是,即使程序停止,我们也可以调用F。有时,这对于递归算法的线性化非常有用。我们可以在运行函数后“保存函数”,然后再使用它们。顺便说一句,非常感谢您的回答!@azalea当您说,“。。。[该]函数存储为…”您是指结果(返回值)是函数本身还是实际函数本身?我假设是前者,因为您谈到不再重新执行代码。try/except块的另一种方法是实际覆盖存储在标签上的值,以便在函数返回时访问该函数。这就是您要做的吗?不,我的意思是函数离子以地址0x的形式驻留在内存中……我正在寻找一种方法,可以在内存中获取函数,我们可以访问和操作它们(通过地址),直到我们将它们从计算机内存中释放出来(即,驻留在内存中的病毒……我想).我不知道你是否理解,想法就在那里!我的意思是我们可以使用这个函数,从内存调用它们,就像我们第一次调用它一样,然后我们可以做这个函数可以做的事情。好吧,因为函数在Python中是一个对象,它在内存中,直到所有对它的引用都被删除,然后被垃圾收集。那么当你叫它名字,你在记忆中叫它。