Python печатать в цикле таможенных классов, - PullRequest
0 голосов
/ 22 октября 2018

Начиная с 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

Каким должен быть правильный способ использовать подсказки для набора?

1 Ответ

0 голосов
/ 22 октября 2018

Существует несколько вариантов использования подсказок типа для объектов, которые еще не определены:

...