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

  • 相关阅读:
    HTML的基本骨架
    2017.7.27
    2017.7.26
    2017.7.25
    2017.7.24
    2017.7.22
    2017.7.21
    Javascript Step by Step
    Javascript Step by Step
    Javascript Step by Step
  • 原文地址:https://www.cnblogs.com/qianxunman/p/13637526.html
Copyright © 2011-2022 走看看