Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中刷新同一类中的方法中的实例变量列表?_Python_Oop_Instance_Instance Variables - Fatal编程技术网

如何在Python中刷新同一类中的方法中的实例变量列表?

如何在Python中刷新同一类中的方法中的实例变量列表?,python,oop,instance,instance-variables,Python,Oop,Instance,Instance Variables,我有一个类,它在\uuuu init\uuu方法中有一个列表,该方法从API获取一个项目列表并将其存储到实例变量。下面我将这个列表命名为self.mylist class Test: def __init__(self): self.mylist = [] getlist = api.getValue('system/list') if isinstance(getlist, Error.restError):

我有一个类,它在
\uuuu init\uuu
方法中有一个列表,该方法从API获取一个项目列表并将其存储到实例变量。下面我将这个列表命名为self.mylist

class Test:

    def __init__(self):
        self.mylist = []

        getlist = api.getValue('system/list')

        if isinstance(getlist, Error.restError):
            logger.error("ERROR: %s", _ret)
            self.mylist = []
        else:
            self.mylist = getlist[0]

    def getListObj(self, cname):

        for obj in self.mylist:
            if obj.get('CNAME', '') == cname:
                return obj
我现在遇到的问题是,即使列表中某个对象的任何参数发生更改,列表仍然保持不变。每次调用
getListObj
方法时,我都要刷新列表。我在下面试过了,但没用。基本上是通过再次调用API并确保列表中有最新的值来重置
self.mylist

class Test:

    def __init__(self):
        self.mylist = []

        getlist = api.getValue('system/list')

        if isinstance(getlist, Error.restError):
            logger.error("ERROR: %s", _ret)
            self.mylist = []
        else:
            self.mylist = getlist[0]

    def getListObj(self, cname):
        getlist = api.getValue('system/list')

        if isinstance(getlist, Error.restError):
            logger.error("ERROR: %s", _ret)
            self.mylist = []
        else:
            self.mylist = getlist[0]

        for obj in self.mylist:
            if obj.get('CNAME', '') == cname:
                return obj

该代码看起来应该可以工作。您如何确定它不起作用?您的数据需要多新鲜?如果在调用
getListObj
后,在使用它时它会过时,该怎么办?如果每次调用
getListObj
时都要从API中检索新数据,为什么还要存储
self.mylist
?我建议将重复的代码移到单个方法中。