繁体   English   中英

防止在python中修改返回的列表

[英]Preventing modification of returned lists in python

我正在研究我的python技能,并尝试创建一些类。 由于python是基于引用的,因此类方法返回的任何列表都可以被调用者修改,然后调用者将反映在类中(就像我一样)。 避免这种情况的正确方法是什么? 我在考虑将嵌套列表转换为嵌套元组还是进行深层复制?

返回元组是回放不可变列表的一种相当标准的方法。 另一种选择是返回列表的不可变“视图”。 我不认为stdlib当前包含这样的类,所以你可能不得不自己动手,但它会相当直接。 基本上,该类将包含一个私有实例变量(基础列表); 并且只实现读操作( __getitem____len__等),并将它们委托给实例变量(根据需要包装“view”对象中的所有子项)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM