在使用decorator执行之前在python中pickle对象

在使用decorator执行之前在python中pickle对象,python,pickle,Python,Pickle,我试图构建一个装饰器,它可以在执行之前在以后使用它来pickle任何函数,但是我得到了以下错误 PicklingError at / Can't pickle <function wow at 0x105ff9488>: it's not the same object as apps.sandbox_app.tasks.wow 这是装修工的登记表 from dj_cron.task import register @register def wow(): x = 2

我试图构建一个装饰器,它可以在执行之前在以后使用它来pickle任何函数,但是我得到了以下错误

PicklingError at /

Can't pickle <function wow at 0x105ff9488>: it's not the same object as apps.sandbox_app.tasks.wow
这是装修工的登记表

from dj_cron.task import register

@register
def wow():
    x = 2 * 3
    return x
函数wow的实际调用如下

呼叫.py

wow()

有什么办法可以解决这个问题吗

我不知道为什么酸洗不起作用,但您的装饰程序从未实际调用该函数,并返回另一个函数,因此
wow
中的代码将不会运行。如果我将此返回存储区任务任务任务模型(func)替换为返回存储区任务任务模型(func()),则上述代码将起作用但这意味着存储的pickle将是我不想要的可执行对象。为什么需要pickle函数呢?通常该函数是可用的,因为无论在何处取消拾取对象,都会运行相同的代码。您真正需要做什么?我正在基于HTTP请求服务构建一个调度程序(通过该服务,您发出回拨请求,它会回拨特定的url)。我想这样做的方法是,为使用此代码的任何人提供一个装饰器,让他们可以将其包装在自己的函数中,然后装饰器将在数据库中存储经过pickle处理的函数,用服务安排回调,HTTP请求终止,并等待回调。这是为了模拟类似于cron作业的行为,或者更准确地模拟排队行为存储编译的字节码不是更好吗?
wow()