How to Create and Use Custom Python Module

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.pymymath.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 分发它。

我的开源项目

酷瓜云课堂-在线教育解决方案


鸠摩智首席音效师
475 声望9 粉丝

身强体健,龙精虎猛的活着。