如果您将可变类型传递给函数或方法,然后无意中在该函数或方法内对其进行了变异,它也会在外部范围内被更改,这可能会导致非常糟糕且难以发现的错误。
传递可变类型时,业界接受的解决方法是什么?
例如,您可以使用列表:
def func(myList):
myList = myList[:]
此后,该函数内部myList
将是一个可以安全变异的副本。与使用copy
模块相同。但这是最好的或标准的方法吗?
还是每个人都只是在执行其他任何操作之前将所有参数重新分配给局部范围变量?有点烦人的额外步骤,更改参数的名称......