Python模块和包

21次阅读
没有评论

共计 737 个字符,预计需要花费 2 分钟才能阅读完成。

工程结构

在 Python 中,最顶级的叫做包,包 → 模块 → 类 → 方法、变量。

  • 模块(module),一个 py 文件,模块名就是文件名
  • 包(package),含有多个 py 文件的文件夹,只有包含了 __init__.py 模块的文件夹才能成为包

包中的 __init__.py 文件默认内容为空,一般用于描述当前包的信息(在导入包下面的模块时,会自动加载)。

导入

导入,其实就是将模块或包加载到内存中,以后再去内存中拿就行。在 Python 内部默认设置了一些路径,导入模块或包时,都会按照指定顺序逐一去特定的路径查找。

如果想要导入任意的模块或包,可以手动在 sys.path 中添加指定路径,然后再导入,例如:

import sys
sys.path.append(" 指定路径 ")

import xxx # 导入指定路径下的一个 xxx.py 文件

all 列表

如果一个模块文件中有__all__变量,当使用 from xxx import * 导入时,只能导入这个列表中的元
素。

使用 from 包名 import * 必须在__init__.py 文件中添加__all__ = [],控制允许导入的模块列表。

主文件

执行一个 py 文件时:__name__ == "__main__";导入一个 py 文件时:__name__ == " 模块名 "__name__有 2 个作用:

  • 作为这个模块的入口,类似其他语言中的 main 函数
  • 作为调试使用

搜索顺序

导入模块时,先搜索当前目录指定模块名的文件,如果有就直接导入;如果没有,再搜索系统目录。

模块一般都有一个内置属性__file__,可查看模块的完整路径。

__init__.py

要在外界使用包中的模块,需在__init__.py 中指定对外界提供的模块列表:

# 从当前目录导入模块列表
from . import 模块名
from . import 模块名

正文完
post-qrcode
 0
三毛
版权声明:本站原创文章,由 三毛 于2023-08-15发表,共计737字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)