【发布时间】:2020-08-18 14:35:41
【问题描述】:
是否有一种简单/优雅的方法可以将对象传递给函数,并且不允许从该函数内部对其进行修改?例如,对于传递的数组,它应该无法执行
array[2]=1
并更改数组的外部版本。这是一个例子,但我正在寻找一种不仅适用于数组的解决方案。
我考虑过passing a copy,但这感觉有点不雅,因为它需要不断地使用复制库,并且需要不断地计算复制对象。
不能以某种方式使对象作为一个整体不可修改,因为我确实希望在给定函数之外对其进行修改。
【问题讨论】:
-
如果您可以将一个不可变对象传递给一个函数,然后该函数尝试对其进行变异,您期望会发生什么?
-
某种例外是最好的,其次是它仅在本地影响对象的副本。要么是一个解决方案。
标签: python python-3.x object scope