如何在Python中对函数进行深度复制?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (75)

我想用Python做一个函数的深度拷贝。

我的目标是拥有两个具有相同实现但具有不同文档字符串的函数。

def A():
    """A"""
    pass

B = make_a_deepcopy_of(A)
B.__doc__ = """B"""

那么,如何才能做到这一点呢?

提问于
用户回答回答于

FunctionType构造函数用于对函数进行深度复制。

import types
def copy_func(f, name=None):
    return types.FunctionType(f.func_code, f.func_globals, name or f.func_name,
        f.func_defaults, f.func_closure)

def A():
    """A"""
    pass
B = copy_func(A, "B")
B.__doc__ = """B"""
用户回答回答于
from functools import partial

def a():
    """Returns 1"""
    return 1

b = partial(a)
b.__doc__ = """Returns 1, OR DOES IT!"""

print help(a)
print help(b)

扫码关注云+社区

领取腾讯云代金券