Your Page Title
🔍

    Python Modules

    Modules in Python are files containing Python code. They help organize code into manageable and reusable parts. Modules can contain functions, classes, variables, and runnable code. Python has a rich standard library of modules, and you can also create or install custom ones.

    Types of Modules

    1. Built-in Modules:
    • These are already installed by Python, for example: math, os, sys, etc.
    • You do not need to install them; they can be imported and used directly.

    2. Standard Library Modules:

    • Python offers a rich variety of modules that can accomplish most of the tasks involved, such as datetime, random, json, etc.

    3. External Modules:

    • Those are third-party modules. These modules are not within the reach of the standard library, examples including numpy, pandas, etc.
    • These need to be installed with the help of an external package manager like pip.

    4. User-defined Modules:

    • These are modules that you develop to structure your personal code.

    Using a Module

    Importing a Module

    You can import a module using the import statement.

    # Example: Importing the math module
    import math
    print(math.sqrt(16)) # Outputs 4.0

    Importing Specific Items

    You can import specific functions, classes, or variables.

    from math import sqrt, pi
    print(sqrt(25)) # Outputs 5.0
    print(pi) # Outputs 3.141592653589793

    Aliasing Modules

    Use the as keyword to assign an alias.

    import math as m
    print(m.sqrt(9)) # Outputs 3.0

    Importing All Items

    This imports everything from a module but is generally discouraged due to potential name conflicts.

    from math import *
    print(sin(0)) # Outputs 0.0

    Creating a User-Defined Module

    1. Create a Python file with a .py extension.
    2. Define functions, variables, or classes in it.

    Example: Create a module named my_module.py

    # my_module.py
    def greet(name):
       return f"Hello, {name}!"
    
    pi = 3.14159

    Using the module in another file:

    import my_module
    print(my_module.greet("Alice")) # Outputs "Hello, Alice!"
    print(my_module.pi) # Outputs 3.14159

    Module Search Path

    When you import a module, Python searches for it in the following order:

    1. Built-in modules, such as math.
    2. Directories in the sys.path variable, including:
      • The directory of the current script.
      • Directories listed in environment variables such as PYTHONPATH.
      • Standard library directories.

    Example: Checking the search path

    import sys
    print(sys.path)

    Packages: Modules Organized in Directories

    A package is a collection of related modules grouped into a directory. It must contain an __init__.py file (can be empty).

    Example: Package structure

    mypackage/
       init.py
       module1.py
       module2.py

    Using the package:

    from mypackage import module1

    Popular Built-in Modules

    1. os: Interact with the operating system.
    import os
    print(os.getcwd()) # Get current working directory

    2. sys: Access Python runtime information.

    import sys
    print(sys.version) # Python version

    3. math: Perform mathematical operations.

    import math
    print(math.factorial(5)) # Outputs 120

    4. datetime: Handle dates and times.

    from datetime import datetime
    print(datetime.now()) # Current date and time

    5. random: Generate random numbers.

    import random
    print(random.randint(1, 10)) # Random integer between 1 and 10

    Best Practices for Using Modules

    1. Use descriptive names for your custom modules to avoid conflicts.
    2. Do not import module * unless really needed.
    3. Focus the modules on having a single responsibility.
    4. Use virtual environments for external modules to avoid dependency conflicts.