«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Решите проблему импорта цикла подсказок типа класса Mixin в Python

Решите проблему импорта цикла подсказок типа класса Mixin в Python

Опубликовано в 2025-04-12
Просматривать:420

How to Resolve Cyclic Import Issues for Type Hinting with Mixin Classes in Python?

python type намек без циклического импорта

Проблема:

импортирующие модули с циклическими зависимость Classes.

details:

в Python 3.4, класс разделен на два файла (main.py и mymixin.py), где mymixin.py содержит класс микшина, который наследует из основного класса в main.py (i.e., main (объект, mymixin). :). Тип подсказки в методах Mymixin требует определения типа возврата как «основной», что приводит к циклическому вопросу импорта.

Python 3.4 Решение:

для обхода циклического импорта, в то время как намек на тип, намек на пользовательский подход с использованием форвардной декларации. Используя постоянную «type_checking» из модуля «typling», оператор Import в блоке аннотации типа игнорируется во время выполнения. Аннотация «Основной» типа также преобразуется в строку для пересылки, объявить его. Cleaner.

Несмотря на эти обходные пути, использование микшинов с подсказом типа может по -прежнему потребовать реструктуризации, чтобы гарантировать, что проверка и проверка типа Pycharm и Mypy работает, как и ожидалось. Mypy рекомендует создать ABC, из которого наследуют как основные, так и микшиновые классы. ]

Заявление о выпуске Эта статья воспроизводится: 1729656375 Если есть какие -либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3