Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.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 - Fatal编程技术网

Python在添加到不同对象时填充自身对象

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

我试图返回一个基于给定测试的测试列表。 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_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我用一个工作示例更新了我的代码。这是这个问题的重复:是的,您使用的是类变量(即“静态”)变量,而不是实例变量。这是否回答了您的问题?