Python 中的模块是什么?
模块是指包含 Python 语句和定义的文件。

包含 Python 代码的文件,例如:example.py,称为模块,其模块名称为example。
我们使用模块将大型程序分解为可管理的小型文件。 此外,模块提供了代码的可重用性。
我们可以在模块中定义最常用的函数并将其导入,而不是将其定义复制到其他程序中。
让我们创建一个模块。 输入以下内容并将其另存为example.py。
1 2 3 4 5 6 7 8 |
# Python Module example def add(a, b): """This program adds two numbers and return the result""" result = a + b return result |
在这里,我们在名为example的模块内定义了函数 add()。 该函数接受两个数字并返回它们的和。
2.如何在 Python 中导入模块?
我们可以将模块内部的定义导入另一个模块或 Python 中的交互式解释器。
我们使用import关键字执行此操作。 要导入我们先前定义的模块example,我们在 Python 提示符下键入以下内容。
1 |
>>> import example |
这不会直接在当前符号表中导入在example中定义的函数的名称。 它仅在此处导入模块名称example。
使用模块名称,我们可以使用点.运算符访问该函数。
例2.1:导入模块名称example
1 2 3 |
import example print(example.add(4,5.5)) |
1 |
结果
1 |
9.5 |
Python 有大量的标准模块。 您可以查看 Python 标准模块的完整列表及其用例。 这些文件位于 Python 安装位置内的Lib目录中。
可以像导入用户定义的模块一样导入标准模块。
有多种导入模块的方法。 它们在下面列出。
2.1 Python import语句
我们可以使用import语句导入模块,并如上所述使用点运算符访问其中的定义。
例2.2 导入math模块
1 2 3 4 5 |
# import statement example # to import standard module math import math print("The value of pi is", math.pi) |
运行该程序时,输出为:
1 |
The value of pi is 3.141592653589793 |
2.2 重命名导入
我们可以通过重命名模块来导入模块,
例2.3 重命名模块来导入模块
1 2 3 4 |
# import module by renaming it import math as m print("The value of pi is", m.pi) |
我们已将math模块重命名为m。 在某些情况下,这可以节省我们的键入时间。
请注意,名称math在我们的范围内未被识别。 因此,math.pi无效,并且m.pi是正确的实现。
2.3 Python from…import语句
我们可以从模块导入特定名称,而无需整体导入模块。 这是一个例子。
例2.4 从数学模块中只导入pi
1 2 3 4 |
# import only pi from math module from math import pi print("The value of pi is", pi) |
结果
1 |
The value of pi is 3.141592653589793 |
在这里,我们仅从math模块中导入了pi属性。
在这种情况下,我们不使用点运算符。 我们还可以如下导入多个属性:
例2.5 从数学模块中导入pi和e
1 2 3 4 5 |
# import pi and e from math module from math import pi,e print("The value of pi is", pi) print("The value of e is", e) |
1 |
结果 |
1 2 |
The value of pi is 3.141592653589793 The value of e is 2.718281828459045 |
2.4导入所有名称
我们可以使用以下结构从模块导入所有名称(定义):
例2.6 从数学模块导入名称(定义)
1 2 3 4 |
# import all names from the standard module math from math import * print("The value of pi is", pi) |
1 2 |
<span class="pl-c">结果 </span> |
1 |
The value of pi is 3.141592653589793 |
在这里,我们从math模块中导入了所有定义。 这包括在我们的范围内可见的所有名称,但以下划线(私有定义)开头的名称除外。
导入带有星号(*)符号的所有内容都不是一种好的编程习惯。 这可能导致标识符重复定义。 这也会影响我们代码的可读性。
3.导入模块练习
例3.1 由产品价格计算一个产品的实际售价 (西方会计制度,税不包含在产品价格之内)
首先生成一个pricing.py模块
1 2 3 4 5 6 7 8 |
# pricing.py def get_net_price(price, tax_rate, discount=0): return price * (1 + tax_rate) * (1-discount) def get_tax(price, tax_rate=0): return price * tax_rate |
其次,生成一个main.py文件
1 2 3 4 5 6 7 8 9 10 |
# main.py import pricing net_price = pricing.get_net_price( price=100, tax_rate=0.01 ) print(net_price) |
结果
1 |
101.0 |
摘要
1.模块是具有 .py 扩展名的 Python 源代码文件。模块名称是没有扩展名的 Python 文件名。
2.要使用模块中的对象,请使用 import 语句导入它们。
wer