python - 跟踪指向更新列表的类实例
问题描述
我是 stackoverflow 和 OOP 的新手,
问题:我有一个类TrackList
应该跟踪Element
. Element
是一个使用 webdriver 根据索引查找列表项的类。该列表有一项列表[0]。
class TrackList():
def __init__(self):
self.instance_list = {}
def element_instance(self, index):
if index not in self.instance_list:
self.instance_list[index] = Element(index)
return self.instance_list[index]
class Element():
def __init__(self, index):
self.index = index
def _web_driver_search(self):
#find a node based on the index provided i.e.
driver.find_element(By.XPATH, f'//li[text()="{self.index}"]')
print("new element found")
...
现在让我们假设列表已更新,因此列表 [0] = 列表 [1] 中的对象和新对象变为列表 [0]。不幸的是,由于 instance_list[0] 存在,当前的实现仍将返回旧对象。如何实现 instance_list[0] 指向新对象和 instance_list[1] 指向旧对象?我是否遗漏了什么或设计模式有误?
解决方案
instance_list = {}
创建一个空的字典(字典/地图),而不是一个列表,所以instance_dict
如果这是你想要的,那么将它称为 a 会更清楚。
听起来您想改用 a stack
,但如果不知道 Web 驱动程序列表的作用,我不能肯定地说。
如果 web 驱动程序添加另一个元素时 index 的含义发生了变化,则不要存储索引,只需array
通过索引从 an 中获取元素。同样,我取决于网络驱动程序的功能,您需要模仿这种行为。