как избавиться от модуля. класс при импорте модуля из пакета

88
5

Так что у меня есть приложение python, которое использует пакет MyPackage, в файле init.py моего пакета у меня есть (среди прочих):

from Mesure import Mesure'

где Mesure.py - это модуль, содержащий класс Mesure

для импорта этого класса я могу написать:

from Mypackage import Mesure

или:

import Mypackage.Mesure as Mesure

и т.д., но затем для создания класса, который я не могу сделать:

m = Mesure() # gives a "module object is not callable " error'

мне нужно сделать

m = Mesure.Mesure() # good, no errors

это избыточно, и я хотел бы найти способ написать Mesure и получить класс (а не модуль), который я пробовал:

import MyPackage.Mesure as mes
import mes.Mesure # gives a "no module named mes " error

Я также попытался удалить строку в файле init.py, но это ничего не меняет

Поэтому возникает вопрос: нужно ли мне писать Mesure.Mesure каждый раз, когда я хочу, чтобы создать класс? заранее спасибо.

спросил(а) 2021-01-25T15:44:02+03:00 4 месяца, 2 недели назад
1
Решение
76

вы импортируете модуль Mesure но используете его как класс, он должен быть

from Mypackage.Mesure import Mesure

или же

import Mypackage.Mesure.Mesure

Имя модуля python обычно имеет нижний регистр.

ответил(а) 2021-01-25T15:44:02+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема