相关疑难解决方法(0)

如何创建python函数的副本

是否有可能创建python函数的真实副本?最明显的选择是http://docs.python.org/2/library/copy.html,但我读到了:

它通过返回原始对象来"复制"函数和类(浅和深);

我需要一个真正的副本,因为我可能会更改该函数的某些属性.

更新:

我知道评论中提到的所有可能性.我的用例基于元编程,我从一些声明性规范中构造类.完整的细节对于SO来说太长了,但基本上我有一个类似的功能

def do_something_usefull(self,arg):
    self.do_work()
Run Code Online (Sandbox Code Playgroud)

我将这个方法添加到各个类.类可以完全不相关.使用mixin类不是一个选项:我将有许多这样的函数,并最终为每个函数添加一个基类.我目前的"解决方法"是将此函数包装在"工厂"中,如下所示:

def create_do_something():
    def do_something_usefull(self,arg):
        self.do_work()
Run Code Online (Sandbox Code Playgroud)

这样我总是得到一个新的do_something_useful函数,但是我必须像这样包装我的所有函数.

我相信我,我知道,这不是"正常"的OO编程.我知道如何解决"通常"这样的问题.但这是一个动态代码生成器,我希望尽可能保持轻量级和简单的一切.由于python函数是非常普通的对象,我不认为如何复制它们太奇怪了!?

python deep-copy

20
推荐指数
1
解决办法
1万
查看次数

标签 统计

deep-copy ×1

python ×1