我想在 Python 中制作一个函数的深度复制。这copy根据该模块没有帮助文档,其中说:
该模块不复制模块、方法、堆栈跟踪、堆栈帧、文件等类型,
套接字、窗口、数组或任何类似的类型。它确实“复制”函数和类(浅层
并深入),通过不变地返回原始对象;这与方式兼容
这些由 pickle 模块处理。
我的目标是拥有两个具有相同实现但具有不同文档字符串的函数。
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"""
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)