Я не могу создать модуль Python, который правильно поддерживает проверку типов.Python

Программы на Python
Ответить
Anonymous
 Я не могу создать модуль Python, который правильно поддерживает проверку типов.

Сообщение Anonymous »

Я создал модуль Python MyModule, который полностью написан с поддержкой типизации (в целях обслуживания).
Но когда я пишу сценарий, использующий MyModule, скажем, MyScript. пы:

Код: Выделить всё

from MyModule import MyClass, MyOtherClass

if __name__ == "__main__":
a = MyClass(1, 2)
a = MyOtherClass(90)
Но когда я запускаю PYTHONPATH=pathtomodule mypy MyScript.py, я получаю следующую ошибку:

Код: Выделить всё

MyScript.py:1: error: Module "MyModule " has no attribute "MyClass"  [attr-defined]
MyScript.py:1: error: Module "MyModule " has no attribute "MyOtherClass"  [attr-defined]
Для полноты, вот макет файлов моего модуля:
  • pathtomodule/

    MyModule/

    py.typed: пусто
  • __init__.py: пусто
  • MyModule.py: содержит определение классов



Я заметил, что если я добавлю в __init__.py следующую строку, она будет работать:

Код: Выделить всё

from .MyModule import MyClass, MyOtherClass
но я не понимаю почему. Нужно ли мне добавлять в этот файл все интерфейсы, чтобы поддерживать ввод скриптов, использующих мой модуль?

Подробнее здесь: https://stackoverflow.com/questions/790 ... e-checking
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»