Я пытаюсь создать локальный API для своей команды. Думаю, я в общих чертах понимаю механику _init_.py. Допустим, у нас есть следующая структура пакета:
Код: Выделить всё
API/
├── __init__.py # Top-level package init file
└── core/
├── __init__.py # Core module init file
├── calculator.py
└── exceptions.py
Код: Выделить всё
import API
API.core
API.core.calculator
Код: Выделить всё
from . import core
Код: Выделить всё
from . import calculator
from . import exceptions
Код: Выделить всё
API.core.calculator.numpy
В той же теме предположим, что я хочу получить доступ к моим функциям калькулятора.py напрямую через ключевое слово core (предположим, что _все_ переменные безопасно настроены). Затем я могу добавить следующее в свой основной модуль _init_.py
Код: Выделить всё
from .calculator import *
from .exceptions import *
Код: Выделить всё
API.core.my_function()
2. Как предотвратить доступность импортированных функций как через имя моего пакета, так и через имя модуля?
Я пробовал смешивать подходы, но безрезультатно, пожалуйста, помогите!
Подробнее здесь: https://stackoverflow.com/questions/791 ... -clean-api
Мобильная версия