Как использовать список, который находится в родительском классе, в дочернем классе, который находится в другом файле?

У меня есть родительский класс, который находится файле test2.py

l = [[1,2], [3,4]]

class main:
     l1 = []

     def __init__(self, a, b):
         self.a = a
         self.b = b

     def solve(self):
         main.l1.append(self.a+3)


     def printtt(self):
         import test3
         p = test3.Segm(self.a, self.b)
         p.printt()


for i in l:
    w = main(i[0], i[1])
    w.solve()
w.printtt()

А также дочерний файл в файле test3.py

class Segm():
     def __init__(self, a, b):
         self.a = a
         self.b = b

     def printt(self):
         import test2
         o = test2.main(self.a, self.b)
         print(o.l1)

Мне нужно использовать список (находящийся в родительском классе в другом файле) в дочернем, все работает, но оно выводит то что мне нужно 2 раза, возможно кто знает как сделать так чтобы список выводился только 1 раз?

Вывод

[4, 6]

[4, 6]


Ответы (1 шт):

Автор решения: S. Nick

Я не уверен что правильно понимаю то, что вы хотите сделать, но предложу попробовать следующее:

main.py

from test3 import Segm                                     # +++


my_list = [
    [1, 2], 
    [3, 4]
]

class Main:
    l1 = []

    def __init__(self, a, b):
        super().__init__()
        self.a = a
        self.b = b

    def solve(self):
        self.l1.append(self.a + 3)

    def printtt(self):
#         import test3
        segm = Segm(self)                                  # +++ (self)
        segm.printt()

for i in my_list:
    main = Main(i[0], i[1])
    main.solve()
    
main.printtt()

test3.py

class Segm():
     def __init__(self, parent):                # +++ parent
         self.parent = parent

     def printt(self):
         print(self.parent.l1)                  # +++ self.parent
         
→ Ссылка