【发布时间】:2018-03-29 23:52:00
【问题描述】:
我有以下问题。我有一个函数,它接受 2 个列表作为参数。为了不改变它们中的任何一个,我想使用copy 模块并创建两者的deepcopy。
到目前为止,我只走了这么远:
import copy
def f(a1, a2):
a1 = copy.deepcopy(a1)
a2 = copy.deepcopy(a2)
# Rest of function code below.
我个人认为这段代码看起来不太好。最好有这样的东西
import copy
def f(a1, a2):
newdeepcopy(locals())
# Rest of function code below. The same code as above.
函数newdeepcopy 应该以locals 作为参数,并且只在f 的范围内重新定义变量a1 和a2。这可能吗?
【问题讨论】:
-
好的,非常感谢。不幸的是,没有更好的选择,但我可以处理。
-
你为什么想要这个?在我看来,这更像是一个 XY 问题。
-
@Kasramvd:代码的可重用性是,AFAIK,一个很好的实践。我只是不想一次又一次地编写本质上相同的代码行(a1 = copy.deepcopy(a1))。
标签: python python-3.x function copy