Python Exceptions, Modules, and Packages: Concepts and Practical Examples
This article explains the fundamental Python concepts of exception handling, modules, and packages, provides their basic syntax, and demonstrates multiple real‑world code examples for handling errors, importing modules, and organizing code with packages.
In Python, exception handling, modules, and packages are three core concepts that play a crucial role in program design and maintainability.
Exception
An exception is Python's way of handling errors; when an error occurs, Python raises an exception, and if it is not caught, the program terminates. The try...except...else...finally structure is used to catch and process exceptions.
try:
# code block to attempt
except ExceptionType:
# handle the specific exception
else:
# execute if no exception occurs
finally:
# always executed, regardless of exceptionCommon exception types include ZeroDivisionError , FileNotFoundError , KeyError , and custom exceptions can be created with the as keyword to capture detailed information.
Module
A module is a file containing Python definitions and statements. Importing modules allows code reuse and better organization. Python includes many standard modules such as math and os , and users can create their own.
import module_name # import the whole module
from module_name import function # import a specific function
from module_name import * # import everything (use with caution)Package
A package is a way to organize modules into a directory hierarchy. It is a directory containing a special __init__.py file (optional in Python 3.3+), which marks the directory as a package.
Packages enable hierarchical namespaces, helping avoid name collisions and making large projects clearer.
my_project/
__init__.py
subpackage/
__init__.py
my_module.py
# In another file
from my_project.subpackage import my_module
my_module.some_function()Exception Usage Scenarios
1. Handling division by zero
try:
result = 10 / 0
except ZeroDivisionError:
print("除数不能为0")2. File not found
try:
with open('not_exist.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print("文件未找到")3. Missing dictionary key
data = {'name': 'Alice'}
try:
age = data['age']
except KeyError:
print("键 'age' 不存在")4. Custom exception
class MyError(Exception):
pass
def check_age(age):
if age < 0:
raise MyError("年龄不能为负数")
else:
print(f"年龄是: {age}")
try:
check_age(-1)
except MyError as e:
print(e)5. finally block for resource cleanup
try:
file = open('example.txt', 'w')
file.write("Hello, World!")
except Exception as e:
print(e)
finally:
file.close()Module Usage Scenarios
1. math module for mathematical operations
import math
print(math.sqrt(16)) # 计算平方根2. datetime module for date and time handling
from datetime import datetime
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S")) # 当前日期时间格式化输出3. os module for file system operations
import os
print(os.getcwd()) # 获取当前工作目录
os.makedirs('new_dir') # 创建多级目录4. sys module for command‑line arguments
import sys
print(sys.argv) # 打印命令行参数5. json module for JSON data handling
import json
data = '{"name": "Bob", "age": 30}'
parsed_data = json.loads(data)
print(parsed_data['name']) # 输出: BobPackage Usage Scenarios
1. Organizing module structure
mypackage/
__init__.py
subpackage1/
__init__.py
module1.py
subpackage2/
__init__.py
module2.py2. Importing a module from a sub‑package
from mypackage.subpackage1 import module1
module1.some_function() # 调用subpackage1下的module1模块中的函数3. Package‑level initialization
# mypackage/__init__.py
print("mypackage 初始化")
import mypackage # 运行时会输出mypackage 初始化4. Defining a public variable in a package
# mypackage/__init__.py
VERSION = "1.0.0"
from mypackage import VERSION
print(VERSION) # 输出: 1.0.05. Using relative imports to simplify internal references
# mypackage/subpackage1/module1.py
from .module2 import some_function # 从同包的module2导入函数
some_function()Test Development Learning Exchange
Test Development Learning Exchange
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.