Начиная с Python 3.5, можно использовать подсказки для набора текста.Теперь я сталкиваюсь с ситуацией, когда я не могу найти правильный способ его использования.
У меня есть 2 файла (FileA.py, FileB.py), где класс AA использует класс BB и классBB использует класс AA.
Следующий код работает правильно:
FileA.py
from FileB import BB
class AA:
def __init__(self):
self.link_to_b = None
def add_b(self, b: BB):
self.link_to_b = b
FileB.py
class BB:
def __init__(self):
self.property_b = 42
self.link_to_a = None
def add_a(self, a):
self.link_to_a = a
Метод add_b (self, b: BB) из класса AA использует подсказки при наборе, указывая, что b должен быть экземпляром BB.
Мне бы хотелосьсделать то же самое для метода add_a (self, a) из класса BB.Проблема в том, что, как только я пытаюсь импортировать класс из другого файла (так же, как я делал в FileA.py), я получаю сообщение об ошибке.
ImportError: cannot import name 'BB' from 'FileB'
Если я не импортируюэто, но попробуйте использовать подсказку для ввода, как показано ниже, я получил сообщение NameError.
def add_a(self, a: AA):
NameError: name 'AA' is not defined
Каким должен быть правильный способ использовать подсказки для набора?