Python在添加到不同对象时填充自身对象
我试图返回一个基于给定测试的测试列表。 e、 g.我有一个测试,它应该返回一个包含两个测试的列表 我在测试中有以下代码Python在添加到不同对象时填充自身对象,python,Python,我试图返回一个基于给定测试的测试列表。 e、 g.我有一个测试,它应该返回一个包含两个测试的列表 我在测试中有以下代码 class Test: lots = [] def __init__(self): pass def add_lot(self, lot): self.lots.append(lot) def split_test_based_on_needed_restarts(self): test_li
class Test:
lots = []
def __init__(self):
pass
def add_lot(self, lot):
self.lots.append(lot)
def split_test_based_on_needed_restarts(self):
test_list = []
test_to_add = Test()
previous_lot = False
for index, lot in enumerate(self.lots):
if previous_lot is not False:
if self.vp_items_are_different(self.lots[index - 1], lot):
test_list.append(test_to_add)
test_to_add = Test()
test_to_add.add_lot(lot)
previous_lot = lot
test_list.append(test_to_add)
return test_list
def vp_items_are_different(self, param, lot):
return True
class Lot:
def __init__(self):
pass
test = Test()
test.add_lot(Lot())
test.add_lot(Lot())
tests = test.split_test_based_on_needed_restarts()
由于某种原因,
test\u to\u add.add\u lot(lot)
这一行正在增加self.lots,这使得循环永远不会结束。
我想用test_to_add=test()可以创建一个新对象。
如何将其添加到test\u to\u add而不是self.lots?这行:
test\u to\u add.add\u lot(lot)
中的split\u test\u-based\u-on\u-needed\u重新启动
在循环中不断添加新的test
对象,这就是它无限循环的原因<代码>测试。批次是类属性而不是对象属性,因此批次
是所有测试
对象之间的共享列表。“出于某种原因,Test\u-to\u-add.add\u-lot(lot)
这一行增加了self.批次
”我们怎么知道这个原因而不需要一个参数?你是如何定义自己的?也许您使用的是类变量而不是实例变量,也许您使用的是构造函数的可变默认参数。在任何情况下,您必须提供一个@juanpa.arrivillaga我用一个工作示例更新了我的代码。这是这个问题的重复:是的,您使用的是类变量(即“静态”)变量,而不是实例变量。这是否回答了您的问题?