gpt4 book ai didi

python - 避免可变性错误的常规(有效)方法是什么?

转载 作者:行者123 更新时间:2023-11-28 22:53:51 25 4
gpt4 key购买 nike

如果您将可变类型传递给函数或方法,然后无意中在该函数或方法内改变了它,它也会在外部范围内发生改变,这可能会导致非常糟糕且难以发现的错误。

在传递可变类型时,业界接受的解决方法是什么?

例如,对于您可以使用的列表:

def func(myList):
myList = myList[:]

此后在该函数内 myList 将是一个可以安全变异的副本。与使用 copy 模块相同。但这是最好的或标准的方法吗?

还是每个人都在做任何其他事情之前将所有参数重新分配给局部范围变量?有点烦人的额外步骤,更改参数的名称...

最佳答案

如果您需要副本,请复制一份,否则什么都不做。您不需要反射性地复制每个参数。当你写一个函数时,想想什么样的东西会被传入,想想你是否需要改变这些东西。如果你这样做了,而且你不想在外部修改它们,那么就制作副本。传递您确实想要改变的可变对象并非闻所未闻。

换句话说,不要寻找一些通用的样板文件放在每个函数的开头。只需考虑每个功能需要做什么。

关于python - 避免可变性错误的常规(有效)方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18928387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com