Технико >
- файлы < /li>
< /ul>Код: Выделить всё
. ├── package │ ├── __init__.py │ └── submodule.py └── test.py < /code> __init__.py
Код: Выделить всё
from . import submodule as sm
print(dir())
< /code>
[list]
[*]test.py
Код: Выделить всё
import package
print(package.submodule)
< /code>
[list]
[*]run test.py
[/list]
Код: Выделить всё
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__path__', '__spec__', 'sm', 'submodule']
< /code>
[list]
[*]python version: 3.12.7
[/list]
What happens
You can see the submodule is exposed even I import it as alias in __init__.py
чего я ожидаю
Я ожидаю, что тест. Потому что __init __. py не импортировал его напрямую. И я не уверен, является ли это ошибкой Python.
. /> Я пытаюсь спросить CHATGPT или другие LLMS и искать DOC на python.org. Однако я не получил четкого ответа. Это ошибка или обычный дизайн?
Подробнее здесь: https://stackoverflow.com/questions/794 ... ckage-name