初识包 | Python从入门到精通:高阶篇之三十八

简介: 本节重点介绍了包的概念以及用法优势,将相关的模块放在一个包中,方便管理并且在引用的时候也可以根据需要去引用。

模块化简介 | Python从入门到精通:高阶篇之三十七

包 Package

包也是一个模块。
当我们模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用到包。
普通的模块就是一个py文件,而包是一个文件夹。
创建一个hello的文件夹,此时它并不是一个包。
我们可以通过新建一个模块来验证。

import hello

print(hello)

执行结果:

image.png

包中必须要一个 __init__.py 这个文件,这个文件中可以包含有包中的主要内容。

image.png

在__init__.py这个文件中定义

a = 10
b = 20

def test():
    print('test')

在新建的模块中验证:

print(hello.a)
print(hello.b)
hello.test()

执行结果:

image.png

在hello中新建a.py和b.py

image.png

在a.py中输入:

c = 30

在b.py中输入:

d = 40

将__init__.py中的a,b删掉,此时在新建的模块中输出。

print(hello.a)

执行结果:

image.png

我们之所以建立包,是为了将相关的模块放在一起,比如进行计算器的程序(加减乘除等操作)可以放在一个包中,方便管理,并且在引用的时候也可以根据需要去引用。
但是对于新建的模块而言,如何引用hello的其他模块呢?我们可以直接引用。

from hello import a , b

# print(a)
print(a.c)
print(b.d)

执行结果:

image.png
image.png
image.png

我们在新建a.py和b.py的时候会发现hello中多了一个__pycache__文件。

image.png

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

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站

相关文章
|
4天前
|
存储 程序员 API
Python 入门指南(五)(4)
Python 入门指南(五)
12 1
|
1天前
|
网络协议 网络架构 Python
Python 网络编程基础:套接字(Sockets)入门与实践
【5月更文挑战第18天】Python网络编程中的套接字是程序间通信的基础,分为TCP和UDP。TCP套接字涉及创建服务器套接字、绑定地址和端口、监听、接受连接及数据交换。UDP套接字则无连接状态。示例展示了TCP服务器和客户端如何使用套接字通信。注意选择唯一地址和端口,处理异常以确保健壮性。学习套接字可为构建网络应用打下基础。
18 7
|
1天前
|
关系型数据库 Java 分布式数据库
实时计算 Flink版操作报错合集之在使用 Python UDF 时遇到 requests 包的导入问题,提示 OpenSSL 版本不兼容如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
14 5
|
2天前
|
Python
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
10个python入门小游戏,零基础打通关,就能掌握编程基础_python编写的入门简单小游戏
|
4天前
|
Python Windows
Python分发包安装pip3
Python分发包安装pip3
9 0
|
4天前
|
Python 索引 C语言
Python3从零基础到入门(2)—— 运算符-3
Python3从零基础到入门(2)—— 运算符
|
4天前
|
Python
Python3从零基础到入门(2)—— 运算符-2
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-2
|
4天前
|
Python C语言 存储
Python3从零基础到入门(2)—— 运算符-1
Python3从零基础到入门(2)—— 运算符
Python3从零基础到入门(2)—— 运算符-1
|
4天前
|
存储 C语言 Python
|
4天前
|
Python Windows