Иногда мне нужна ленивая загрузка модуля в Python. Обычно, потому что я хочу, чтобы требования времени выполнения или время запуска были низкими и разделение кода на подмодули было бы громоздким. Типичным вариантом использования и моей предпочтительной в настоящее время реализацией является следующее:
jinja2 = None
class Handler(...):
...
def render_with_jinja2(self, values, template_name):
global jinja2
if not jinja2:
import jinja2
env = jinja2.Environment(...)
...
Интересно: существует ли канонический/лучший способ реализации ленивой загрузки модуля?