创建自定义模块
创建自定义模块非常简单,只需将一些 Python 代码保存到一个 .py
文件中即可。下面我们创建一个简单的模块,包含一些基本的数学操作。
示例:创建一个数学模块
首先,创建一个名为 mymath.py
的文件,并添加以下 Python 代码:
# mymath.py
def add(x, y):
"""Add Function"""
return x + y
def subtract(x, y):
"""Subtract Function"""
return x - y
def multiply(x, y):
"""Multiply Function"""
return x * y
def divide(x, y):
"""Divide Function"""
if y != 0:
return x / y
else:
raise ValueError("Cannot divide by zero!")
在这个模块中,定义了四个简单的数学运算函数:加、减、乘、除。
导入自定义模块
创建模块后,可以在其他 Python 脚本或交互式解释器会话中导入并使用这个模块。
导入整个模块
可以使用 import
语句来导入整个模块,然后通过模块名访问其内部定义的属性和方法。
import mymath
# 使用 mymath 模块中的函数
result = mymath.add(10, 5)
print(result) # 输出:15
从模块中导入特定的项
如果只需要从模块中使用某些功能,可以使用 from
关键字导入特定的函数或类。
from mymath import subtract
# 直接使用导入的函数
result = subtract(10, 5)
print(result) # 输出:5
导入模块中的所有内容
使用星号(*
)可以导入模块中定义的所有项目,但这种做法不推荐,因为它可能会导致命名空间的污染。
from mymath import *
result = multiply(10, 5)
print(result) # 输出:50
模块的高级用法
模块的文档字符串
为模块添加文档字符串可以帮助其他开发者了解模块的功能。这个字符串位于模块的最开始,可以使用三引号括起。
# mymath.py
"""
This is a math module that provides basic math operations.
"""
def add(x, y):
"""Add Function"""
return x + y
# 其他函数...
模块中的测试代码
可以在模块中添加可以执行的测试代码,这些代码只在模块被直接运行时执行,而在模块被导入时不执行。通过检查 __name__
属性来实现。
# mymath.py
def add(x, y):
return x + y
if __name__ == "__main__":
# 这些代码只在模块直接运行时执行
print("Test: add(10, 5) =", add(10, 5))
当运行 mymath.py
时,它将输出 Test: add(10, 5) = 15
。但如果从另一个脚本导入 mymath
,测试代码不会执行。