Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在使用我的 python 技能并尝试创建一些类。由于 python 是基于引用的,因此类方法返回的任何列表都可以由调用者修改,然后调用者会反映在类中(正如我所拥有的那样)。避免这种情况的正确方法是什么?我在考虑将嵌套列表转换为嵌套元组还是进行深层复制?
返回元组是返回不可变列表的一种相当标准的方法。另一种选择是返回列表的不可变“视图”。我认为 stdlib 目前不包含这样的类,所以你可能不得不自己动手,但这会相当简单。基本上,该类将包含一个私有实例变量(底层列表);并且只实现读取操作(__getitem__,__len__等)并将它们委托给实例变量(根据需要将任何子项包装在“视图”对象中)。
__getitem__
__len__