核心内容摘要
电子信息工程毕业设计STM32效率提升实战:从裸机调度到低功耗优化
文章目录
创建模块
导入模块
1 导入整个模块
2 导入模块中的特定部分
3 为模块起别名
4 导入多个模块部分
Python 标准库模块
模块搜索路径
1 模块搜索路径顺序
2 查看 sys.path
如何导入模块时指定路径
1 修改 sys.path 添加路径
2 使用相对导入或绝对导入
3 模块的缓存和重复导入
创建包Package在Python中模块是组织和重用代码的基本单位。
通过模块你可以将相关功能集中在一个文件中从而使代码更易于管理、维护和扩展。
创建模块一个模块通常是一个.py文件例如my_module.py。
你可以在 Python 代码中使用import语句来引用并使用模块中的功能。
例如创建一个名为math_utils.py的模块内容如下# math_utils.pydefadd(a,b):returnabdefsubtract(a,b):returna-b
导入模块一旦创建了模块你就可以在其他Python文件中导入它并使用其中的函数、类或变量。
使用import语句可以导入整个模块或导入模块中的特定部分。
1 导入整个模块通过import语句导入整个模块然后通过模块名来访问其中的内容# main.pyimportmath_utilsprint(math_utils.add(3,
)# 输出 8print(math_utils.subtract(10,
)# 输出
6
2 导入模块中的特定部分如果只需要模块中的某个函数或类可以使用from ... import ...来导入frommath_utilsimportaddprint(add(3,
)# 输出
8
3 为模块起别名你也可以为导入的模块起一个别名以便更方便地使用importmath_utilsasmuprint(mu.add(3,
)# 输出
8
4 导入多个模块部分你可以同时导入模块中的多个函数frommath_utilsimportadd,subtractprint(add(3,
)# 输出 8print(subtract(10,
)# 输出 6
Python 标准库模块Python提供了大量的标准库模块它们覆盖了广泛的功能从文件操作到网络通信再到数学计算。
例如math提供数学函数如平方根、三角函数等。
datetime处理日期和时间。
os与操作系统交互如文件路径、目录操作等。
sys与 Python 解释器交互如命令行参数、标准输入输出等。
这些标准库模块可以直接导入并使用无需额外安装。
importmathprint(math.sqrt(
)# 输出
0importdatetime nowdatetime.datetime.now()print(now)# 输出当前的日期和时间
模块搜索路径那么当你使用import语句导入模块时Python 是如何找到该模块的呢其实Python 会按照一定的顺序在一系列目录中查找模块。
这些目录路径称为模块搜索路径它们存储在sys.path列表中。
1 模块搜索路径顺序当前目录Python 会首先在当前目录中查找模块。
如果你在执行脚本的当前目录下有一个名为my_module.py的文件Python 会优先导入它。
PYTHONPATH环境变量如果你设置了PYTHONPATH环境变量Python 会在该环境变量指定的路径中查找模块。
标准库目录Python 会在标准库目录中查找内置的模块。
例如os、sys、math等标准库模块。
第三方库目录Python 会在通过pip安装的第三方库的目录中查找模块。
常见的第三方库安装位置是site-packages。
2 查看sys.path你可以通过sys.path查看 Python 查找模块的路径importsysprint(sys.path)这将打印出 Python 的模块搜索路径列表通常包括当前目录、PYTHONPATH指定的目录、标准库路径等。
如何导入模块时指定路径虽然 Python 会自动根据模块搜索路径查找模块但有时我们需要从自定义目录或指定路径导入模块。
你可以通过以下方法来指定模块路径
1 修改sys.path添加路径你可以在运行时修改sys.path将模块所在的目录添加到搜索路径中importsys sys.path.append(/path/to/your/module/directory)importmy_module这样Python 会在/path/to/your/module/directory目录中查找模块。
2 使用相对导入或绝对导入在 Python 包中你可以使用相对导入和绝对导入来访问不同模块。
绝对导入使用完整的路径从根目录导入模块。
frommy_package.my_moduleimportsome_function相对导入在包内使用相对路径导入模块。
from.my_moduleimportsome_function# 当前目录的模块from..another_packageimportanother_function# 上级目录的模块
3 模块的缓存和重复导入Python 会将导入的模块缓存起来当同一个模块再次被导入时Python 会直接使用缓存中的模块而不会重新执行该模块的代码。
你可以通过sys.modules查看当前已导入的模块importsysprint(sys.modules)
创建包Package当你有多个相关模块时可以将它们组织成一个包。
包是一个包含多个模块的目录其中必须包含一个__init__.py文件可以是空文件以告诉 Python 这是一个包。
例如创建一个名为my_package的包my_package/ __init__.py module