В python обычной практикой является наличие группы модулей, которые реализуют различные функции, а затем один модуль, являющийся точкой доступа ко всем функциям. Это в основном рисунок фасада .
Пример: скажем, вы пишете пакет foo
, который включает в себя модули bar
, baz
и moo
.
~/project/foo
~/project/foo/__init__.py
~/project/foo/bar.py
~/project/foo/baz.py
~/project/foo/moo.py
~/project/foo/config.py
Обычно вы пишете __init__.py
так:
from foo.bar import func1, func2
from foo.baz import func3, constant1
from foo.moo import func1 as moofunc1
from foo.config import *
Теперь, когда вы хотите использовать функции, которые вы просто делаете
import foo
foo.func1()
print foo.constant1
# assuming config defines a config1 variable
print foo.config1
Если вы хотите, вы можете расположить свой код так, чтобы вам нужно было только написать
import foo
Вверху каждого модуля, а затем получить доступ ко всему через foo
(который вы, вероятно, должны назвать «глобальными» или что-то в этом роде). Если вам не нравятся пространства имен, вы можете даже сделать
from foo import *
и иметь все как глобальное, но это действительно не рекомендуется. Помните: пространства имен - это одна прекрасная идея!