Advanced Modules
Module imports, package structure, init.py, and module patterns.
Overview
Master advanced module concepts.
Import Patterns
# Basic imports
import os
from os import path
from os.path import join, exists
# Aliased imports
import numpy as np
import pandas as pd
# Conditional imports
try:
import ujson as json
except ImportError:
import json
# Lazy imports
def heavy_import():
import tensorflow as tf
return tf
Package Structure
Architecture Diagram
my_package/
āāā __init__.py
āāā module1.py
āāā module2.py
āāā subpackage/
ā āāā __init__.py
ā āāā submod.py
āāā utils/
āāā __init__.py
āāā helpers.py
init.py
# __init__.py
from .module1 import Class1
from .module2 import function1
__all__ = ['Class1', 'function1']
__version__ = '1.0.0'
Module Patterns
# Singleton module
class _Singleton:
_instance = None
def __new__(cls):
if cls._instance is None:
cls._instance = super().__new__(cls)
return cls._instance
singleton = _Singleton()
# Module-level constants
MAX_RETRIES = 3
DEFAULT_TIMEOUT = 30
API_VERSION = "v1"
# Module functions
def get_config():
return {
"max_retries": MAX_RETRIES,
"timeout": DEFAULT_TIMEOUT
}
Practice
Create a well-structured Python package with proper imports.