19. 包

一、什么是包

  在 Python 中,包(Package)也是一个模块。当我们模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用包。普通的模块就是一个 py 文件,而包一个分级层次的目录结构,它将一组功能相近的模块组织在一个目录下。这样,既可以起到代码规范的作用,又能避免模块名重名引入的冲突。在包中,必须要有一个 __init__.py 这个文件,这个文件中可以包含中的主要内容。

  使用 import 语句首次导入包时,会产生一个名称空间。然后会运行该包下的 __init__.py 文件,将运行过程中生成的名字都会丢到这个名称空间中。然后会在当前执行文件的名称空间拿到一个名字,该名字指向被导入的包的名称空间。

在 Python 3 中可以没有 __init__.py 文件;

二、创建包

  创建一个 【arith】 文件夹,并在该文件夹下创建一个 __init__.py 文件。

python 复制代码
num1 = 30
num2 = 40

def add():
    print("我是arith包下__init__模块中的add()方法")

  在 【arith】 目录下,创建 【extension】 文件夹,并在该文件夹下创建一个 __init__.py 文件。

python 复制代码
num3 = 30
num4 = 40

def factorial():
    print("我是arith包下extension模块中的factorial()方法")

三、包的使用

  我们可以通过 "import 完整包名.模块名" 的方式加载指定模块。

python 复制代码
import arith
arith.add()
python 复制代码
import arith.extension
arith.extension.factorial()

  我们还可以通过 "from 完整包名 import 模块名" 的方式加载指定的模块。

python 复制代码
from arith import extension
extension.factorial()

  我们还可以通过 "from 完整包名.模块名 import 变量 " 的方式加载指定模块中的指定结构。

python 复制代码
from arith import add
add()
python 复制代码
from arith.extension import factorial
factorial()

__pycache__ 目录下的文件模块的缓存文件。Python 代码在执行前,需要被解析器先转换为机器码,然后再执行。所以我们在使用模块(包)时,也需要将模块中的代码先转换为机器码然后再交由计算机执行。而为了提高程序的运行的性能,Python 会在编译一次以后,将代码保存到一个缓存文件中。这样在下次加载这个模块(包)时,就可以不再重新编译而是直接加载缓存中编译好的代码即可。

相关推荐
星云穿梭10 小时前
用Python写一个带图形界面的学生管理系统——完整教程
python
金銀銅鐵10 小时前
用 Pygame 实现 15 puzzle
python·数学·游戏
黄忠16 小时前
大模型之LangGraph技术体系
python·llm
hboot1 天前
AI工程师第二课 - 数据处理
人工智能·python·数据分析
用户8356290780511 天前
使用 Python 自动化 PowerPoint 形状布局与格式设置
后端·python
用户8356290780511 天前
用 Python 自动化 PowerPoint 演讲者备注添加
后端·python
黄忠2 天前
01-系统架构设计-LangGraph状态机与多源异构RAG
python
zzzzzz3102 天前
假如我是掘金管理员,我先给评论区装个'代码审查'系统
python·程序员·机器人
砍材农夫2 天前
python环境|conda安装和使用(2)
后端·python
程序员龙叔2 天前
编写高质量 Skill 系列 -- 如何设计需求分析与用例生成的 SKILL
自动化测试·软件测试·python·软件测试工程师·接口测试·性能测试·skill·ai测试