Python模块
2023-09-17 22:16:32
任何扩展名为.py
包含 Python 代码的文本文件基本上都是一个模块。通过使用 import
语句,可以在一个模块中定义的不同 Python 对象(如函数、类、变量、常量等)可用于解释器会话或另一个 Python 脚本。
内置模块中定义的函数在使用前需要导入。在类似的行中,自定义模块中可能包含一个或多个用户定义的 Python 对象。这些对象可以在解释器会话或其他脚本中导入。
如果编程算法需要定义大量函数和类,则它们在逻辑上组织在模块中。一个模块存储类、函数和其他类似相关的资源。这种模块化的代码结构使其易于理解、使用和维护。
创建模块(Creating a Module)
下面显示的是一个包含sum()
函数定义的 Python 脚本。它被保存为calc.py
。
def sum(x, y):
return x + y
导入模块(Importing a Module)
我们现在可以导入这个模块并在Python shell中执行sum()
函数。
import calc
n = calc.sum(5, 5)
print(n) #10
同样,要在另一个 Python 脚本中使用上述calc
模块,请使用 import 语句。
每个模块,无论是内置的还是定制的,都是模块类的对象。 使用内置type()
函数验证不同模块的类型,如下所示。
import calc
print(type(calc)) # <class 'module'>
import math
print(type(math)) #<class 'module'>
重命名导入的模块(Renaming the Imported Module)
使用 as
关键字重命名导入的模块,如下所示。
import math as cal
n = cal.log(4)
print(n) #1.3862943611198906
从 .. 导入声明(from .. import statement)
上面的 import 语句将加载当前工作环境(也称为命名空间)中模块的所有资源。
可以使用此语法从模块导入特定对象。例如,以下模块calc.py
包含三个函数。
def sum(x,y):
return x + y
def average(x, y):
return (x + y)/2
def power(x, y):
return x**y
现在,我们可以使用 from...导入语句。例如,以下代码仅导入main.py
中的两个函数。
from calc import sum, average
n = sum(10, 20) #30
avg = average(10, 20) #15
p = power(2, 4) #error
下面的示例仅导入一个函数 - sum。
from calc import sum
n = sum(10, 20) #30
您还可以使用 from...import *
语法导入其所有函数。
from calc import *
n = sum(10, 20)
print(n)
avg = average(10, 20)
print(avg)
p = power(2, 4)
print(p)
模块搜索路径(Module Search Path)
在交互式会话或脚本中遇到导入语句时:
- 首先,Python 解释器尝试在当前工作目录中找到模块。
- 如果未找到,则搜索 PYTHONPATH 环境变量中的目录。
- 如果仍未找到,它将搜索安装默认目录。
当 Python 解释器启动时,它将上述所有位置放在 sys.path 属性返回的列表中。
import sys
sys.path
['','C:python36Libidlelib', 'C:python36python36.zip',
'C:python36DLLs', 'C:python36lib', 'C:python36',
'C:UsersacerAppDataRoamingPythonPython36site-packages',
'C:python36libsite-packages']
如果上述任何目录中都不存在所需的模块,则会抛出消息ModuleNotFoundError
。
import MyModule
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'MyModule'
重新加载模块(Reloading a Module)
假设您已经导入了一个模块并使用它。但是,模块的所有者在您导入模块后添加或修改了某些功能。因此,您可以使用imp
模块的reload()
功能重新加载模块以获取最新模块,如下所示。
import imp
imp.reload(calc)
获取有关模块的帮助(Getting Help on Modules)
使用 help() 函数了解模块的方法和属性。例如,调用help("math")
以了解数学模块。
如果您已经导入了模块,请提供其名称,例如 help(math)
.
获取模块帮助
如上所示,您可以看到方法名称和说明。它不会显示以 --More 结尾的帮助页面--.按 Enter 查看更多帮助。
您还可以使用 dir() 函数来了解模块的名称和属性。
知道模块属性和方法
在下一章中了解模块属性。
本文内容总结: