您很接近-每次实际需要重置的变量不是
myVmsbut
vm_list,如下所示:
class Node: counter = 0 def __init__(self): c_str = str(Node.counter) self.uuid = "asdf" + c_str self.name = "test " + c_str self.state = "wow " + c_str + " such state" Node.counter += 1class Driver: def __init__(self, number_of_nodes): self.nodes = [] for x in range(number_of_nodes): self.nodes.append(Node()) self.name = "the greatest driver" def list_nodes(self) -> list: return self.nodesdriver = Driver(10)def zip_list(): vm_list = {'vmid': [], 'name': [], 'state': [], 'platform': []} for node in driver.list_nodes(): vm_list["vmid"].append(node.uuid) vm_list["name"].append(node.name) vm_list["state"].append(node.state) vm_list["platform"].append(driver.name) myVms = zip(vm_list['name'], vm_list['vmid'], vm_list['platform'], vm_list['state']) return myVmsprint("First time:")my_list = zip_list()for i in my_list: print(i)print("Second time:")my_list = zip_list()for i in my_list: print(i)如果您
vm_list在
zip_list()函数之外进行初始化,则会看到正在经历的翻倍。



