Python模块与包

1.模块

1.1模块介绍

2.模块导入

1.3__name__

2.包

2.1什么是包

2.2导入包语法

2.3导入包的本质

2.4__init__文件

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球