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​​​值就不是最初的那个值了。
故需要深拷贝,将所有的值重新赋值给一个变量,也就是在新的地址赋值。


懂得,原来世界如此简单!