Самый простой способ получить полное имя модуля

avatar
Intrastellar Explorer
1 июля 2021 в 20:09
72
1
0

Как можно получить полное имя модуля в Python на уровне модуля?

Например, пусть это файловая структура:

foo
├── setup.py
└── bar
    └── baz
        └── spam.py

Из файла spam.py на уровне модуля, как я могу получить полное имя модуля "bar.baz.spam"?


Есть __file__, который можно соединить с inspect.getmodulename(__file__), чтобы получить имя модуля "spam". Однако как мне превратить это в "bar.baz.spam"?

Источник
funnydman
1 июля 2021 в 21:31
0

Зачем тебе это нужно?

Ответы (1)

avatar
Shaheed Haque
1 июля 2021 в 21:27
1

Попробуйте что-то вроде этого:

from bar.baz import spam

print(spam.__name__)

Если импортируемое имя не является модулем, вы можете получить имя модуля и имя объекта следующим образом:

from bar.baz.spam import MyClass

print(MyClass.__module__, MyClass.__name__)
Intrastellar Explorer
6 июля 2021 в 17:22
0

Я не знал, что from bar.baz import spam можно разместить на уровне модуля spam. Это работает отлично, спасибо!