如何创建和使用自定义 Python 模块 ?
Python 模块是封装和组织可重用代码的好方法。如果您发现自己在多个脚本或项目中复制和粘贴相同的代码,这是一个很好的迹象,表明您应该考虑创建一个自定义模块。在本文中,我们将指导您完成创建和使用自定义 Python 模块的过程。
1. Understand the Basics
Python 中的模块只是一个包含 Python 定义和语句的文件。文件名是模块名后跟 .py 扩展名。例如,一个名为 mymodule 的模块将被保存为 mymodule.py。
2. Create the Module
假设您有一些数学计算函数,希望跨项目重用。您可以将它们写入单个文件,然后在其他 Python 脚本中作为模块重用它们。
我创建了下面的 mymath.py 脚本,其中包含加、减、乘和除函数。
# mymath.py
def add(x, y):
return x + y
def subtract(x, y):
return x - y
def multiply(x, y):
return x * y
def divide(x, y):
if y == 0:
return "Undefined (division by zero)"
return x / y
3. Use the Module
现在,让我们看看如何在另一个 Python 脚本中使用这个自定义模块。
# main.py
# Importing our custom module
import mymath
# Using functions from our module
print(mymath.add(5, 3))
print(mymath.subtract(5, 3))
print(mymath.multiply(5, 3))
print(mymath.divide(5, 3))
注意: 确保 main.py 和 mymath.py 在同一目录下,或者在 Python 的 sys.path 目录下。
4. Using the from…import Statement
在某些情况下,您可能只需要使用模块中的几个函数。除了导入整个模块,您还可以导入特定的函数。
from mymath import add, subtract
print(add(5, 3))
print(subtract(5, 3))
5. Using __name__
在较大的模块中,可能需要测试代码。name 属性允许您检查模块是直接运行还是从其他地方导入
# mymath.py
def add(x, y):
# ... (same as above)
# ... other functions ...
if __name__ == "__main__":
print("Running tests for mymath module")
assert add(2, 3) == 5
# ... more tests ...
6. Organize Multiple Modules with Packages
如果有多个相关模块,可以将它们组织到一个包中。包只是在单个目录层次结构中收集相关模块的一种方式。
例如,要创建一个名为 mypackage 的包
mkdir mypackage
在目录中添加一个名为 init.py 的空文件 (这会使 Python 将该目录视为一个包或子包),将相关模块文件放在 mypackage 目录中。
touch ./mypackage/__init__.py
然后,您可以使用以下方式从此包中导入模块
from mypackage import mymath
7. Distributing Your Module
如果您认为您的模块将使 Python 社区受益,请考虑通过 Python 包索引 (PyPI) 分发它。首先,您可以使用 setuptools 将其打包,然后可以使用 twine 分发它。
我的开源项目
评论已关闭