23.Python基础篇-模块和包

模块(Module)

模块的定义:模块是包含 Python 代码的 .py 文件,可包含变量、函数、类等代码单元。每个 Python 文件本质上就是一个模块。

两种使用方式

import与from ... import...

import math                     # 导入整个模块
from math import pi, sqrt       # 导入模块中的特定内容

绝对路径与相对路径导入

默认查找路径

 通过 sys.path 列表查找模块的路径。可以通过修改 sys.path 或配置 PYTHONPATH 环境变量来调整模块的查找路径。

print(sys.path)  # 查看默认查找路径
# ['C:\\Users\\15801\\PycharmProjects\\pythonProject\\模块', 'C:\\Users\\15801\\PycharmProjects\\pythonProject', 'D:\\JetBrains\\PyCharm 2023.1.4\\plugins\\python\\helpers\\pycharm_display', 'D:\\Python\\Python38\\python38.zip', 'D:\\Python\\Python38\\DLLs', 'D:\\Python\\Python38\\lib', 'D:\\Python\\Python38', 'D:\\Python\\Python38\\lib\\site-packages', 'D:\\JetBrains\\PyCharm 2023.1.4\\plugins\\python\\helpers\\pycharm_matplotlib_backend']

修改添加默认查找路径

修改sys.path列表的方式

sys.path.append('C:\\Users\\15801\\PycharmProjects\\pythonProject\\模块\\xxx')  # 往列表中增加一个新的路径,添加之后再导入时会从这个路径查找要导入的模块

包的定义

包是包含多个模块的文件夹,通常包含一个 __init__.py 文件来标识该文件夹是一个包。包可以包含多个模块或子包。

包的结构

my_package/
├── __init__.py
├── module1.py
├── module2.py
└── sub_package/
    ├── __init__.py
    └── module3.py

 

__init__.py文件

文件说明:用于初始化包,在包被导入时会执行其中的代码。

执行时机:在包被导入时。执行到import当前包的时候,会自动执行当前包下的__init__.py

什么作用

在A包下的__init__文件中,写上导入B包的内容。这样当再导入A包时,会将B包的内容也加载到内存中

# my_package/__init__.py
from .module1 import func1  # 使得 func1 可以通过 my_package.func1 调用

 

可以用来做什么

1.可以在 __init__.py 文件中指定包的默认导入项,让用户导入包时可以直接访问某些模块或变量。

例如,创建一个 math_pkg 包,包含 addition.pymultiplication.py 模块,我们希望用户只需导入 math_pkg 就能直接使用这些模块里的函数,可以在 __init__.py 中进行如下配置:

# math_pkg/__init__.py
from .addition import add
from .multiplication import multiply

这样,用户可以直接使用以下方式访问包中的内容,而不必分别导入每个模块:

import math_pkg

result = math_pkg.add(3, 4)      # 直接使用 add 函数

2.控制包的命名空间

可以通过在 __init__.py 文件中定义 __all__ 列表来限制包的命名空间,指定哪些模块或内容可以被外部导入:

# my_pkg/__init__.py
__all__ = ["module1", "module2"]

这样,from my_pkg import * 只会导入 module1module2,而不会导入其他模块。

   

posted @ 2024-11-14 17:47  邵杠杠  阅读(15)  评论(0编辑  收藏  举报