Как использовать список, который находится в родительском классе, в дочернем классе, который находится в другом файле?
У меня есть родительский класс, который находится файле 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