1.1模块介绍
在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。
为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。而这样的一个 py
文件在Python中称为模块(Module)。
模块是组织代码的更高级形式,大大提高了代码的阅读性和可维护性。
模块一共四种:
- 解释器内建模块
- python标准库
- 第三方模块
- 应用程序自定义模块
另外,使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。
2.模块导入
'''
方式1:导入一个模块
import 模块名
import 模块名 as 别名
方式2:导入多个模块
import (
模块1
模块2
)
import 模块1,模块2
方式3:导入成员变量
from 模块名 import 成员变量
from 模块名 import *
'''
导入模块时会执行模块,多次导入只执行一次。
1.3__name__
__name__
是python内置变量,存储的是当前模块名称。
对于很多编程语言来说,程序都必须要有一个入口。像C,C++都有一个main函数作为程序的入口,而Python作为解释性脚本语言,没有一个统一的入口,因为Python程序运行时是从模块顶行开始,逐行进行翻译执行,所以,最顶层(没有被缩进)的代码都会被执行,所以Python中并不需要一个统一的main()作为程序的入口。
在刚才的案例中三个模块都打印一次 __name__
2.1什么是包
当一个项目中模块越来越多,维护和开发不是那么高效的时候,我们可以引入一种比模块更高级语法:包。
包是对相关功能的模块 py
文件)的组织方式。
包可以理解为文件夹,更确切的说,是一个包含 __init__
文件的文件夹。
2.2导入包语法
案例:将上面案例中的 cal .py
文件放到 utils
包中管理, logger.py
放到 logger
包中管理。
2.3导入包的本质
如果将 main.py
放在一个main包下,运行会报错。根本原因是无论导包还是调用模块都是解释器依赖 sys.path
的路径进行查找,而python解释器运行某个程序时会将该程序的启动文件的目录加入到 sysy.path
中.所以启动文件的同级目录或者文件才可以调用。
所以这种目录结构下需要构建模块路径:
2.4__init__文件
__init__.py
该文件的作用就是相当于把自身整个文件夹当作一个包来管理,每当有外部导入的时候会自动执行里面的代码。
主要功能:
__all__
关联了一个模块列表,当执行from xx import *
时,就会导入列表中的模块。
5.配置模块的初始化操作
在了解了 __init__.py
的工作原理后,应该能理解该文件就是一个正常的python代码文件,因此可以将初始化代码放入该文件中。
Original: https://blog.csdn.net/qq_39935684/article/details/120805519
Author: qq_39935684
Title: Python模块与包
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/736606/
转载文章受原作者版权保护。转载请注明原作者出处!