如何在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
?我建议将重复的代码移到单个方法中。