Как вызвать метод дочернего класса, записанного в другом файле?
У меня возникла проблема, если кто знает как ее решить и имеет время, помогите пожалуйста.
Я имею родительский класс, который находится в файле tester.py
l1 = [1, 1, 2]
class A:
def __init__(self,l):
self.l = l
def qw(self):
if l1[0] == 1:
import qwe
qwe.calculate()
f = A(l)
f.qw()
И также дочерний класс который находится в файле qwe.py
import tester
class B(tester.A):
def calculate(self):
print(self.l[0]+'Ok')
Я хочу использовать метод дочернего класса который находится в другом файле в родительском. Я пыталась сделать это так
import qwe
qwe.calculate()
f = A(l1)
f.qw()
Но у меня возникает ошибка и я не знаю почему, возможно, кто-то знает решение?
Ответы (2 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
tester.py
from qwe import B
class A:
def __init__(self, _list, value):
self._list = _list
self.value = value
self.b = B(self._list)
def qw(self):
if self._list[0] == self.value:
self.b.calculate()
my_list = [1, 1, 2]
a = A(my_list, 1)
a.qw()
qwe.py
class B():
def __init__(self, _list):
self._list = _list
def calculate(self):
print(f'{self._list[0]} Ok')
Автор решения: CameL
→ Ссылка
Вам надо объект класса B создать внутри класса A, тогда к нему можно будет применить метод calculate
test.py
l1 = [1, 1, 2]
class A:
def __init__(self,l):
self.l = l
def qw(self):
if l1[0] == 1:
import test2
qwe = test2.B(l1)
qwe.calculate()
f = A(l1)
f.qw()
test2.py
class B():
def __init__(self, _list):
self._list = _list
def calculate(self):
print(f'{self._list[0]} Ok')