python 深浅拷贝今天用上了
class A(object): def __init__(self): self.permission_type_dict = {'a': 1, 'b': 2} @property def get_dict(self): return dict(a=1, b=2) def func(self): import copy permission_type_dict = copy.deepcopy(self.permission_type_dict) print(permission_type_dict) for permission in set(list_permission): if permission in permission_type_dict.keys(): permission_type_dict.pop(permission) return permission_type_dict if __name__ == '__main__': res = A().get_dict print(res)
说明:
我遇到的问题是在网络请求时,调用方法func,每次调用都会删除字典permission_type_dict
的某些元素。
如果使用浅拷贝,变量permission_type_dict
获取的是self.permission_type_dict
的地址,当对permission_type_dict
操作时会直接影响self.permission_type_dict
,那么当第二次调用这个方法时,取到的self.permission_type_dict
值就不是最初的那个值了。
故需要深拷贝,将所有的值重新赋值给一个变量,也就是在新的地址赋值。
本文来自博客园,作者:那时一个人,转载请注明原文链接:https://www.cnblogs.com/qianxunman/p/13637526.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步