Python——包和模块

简介: Python——包和模块

模块与包是任何大型程序的核心,就连Python安装程序本身也是一个包。


如何组织包,把大型模块分割成多个文件,创建命名空间包。


模块、包、库之间的概念:


       模块(module)起始就是py文件,里面定义了一些函数、类、变量等


       包(package)是多个模块的聚合体形成的文件夹,里面可以是多个py文件,也可以嵌套文件夹


       库是参考其他编程语言的说法,是指完成一定功能的代码集合,在Python中的形式就是模块和包


模块其实是一个py文件,用来封装一组功能:包是将一类模块归集到一起,比模块的概念更大一些;库就是由其他程序员封装好的功能组,一般比包的盖帘更大一些。


模块

由以上的内容我们得知模块就是一个py文件,这个文本文件中存储着一组功能,方便我们再次使用的时候,提高代码的复用率。我们称这一个的一个py文件为Python模块(module)。其他Python脚本中,通过import载入定义好的Python模块。


定义和调用Python模块  


我们先来看如何定义一个Python模块


定义一个login.py模块,内容如下:


        def login_handler(name, password):


               correct_user_name = "python"


               correct_password = "123456"


               if  name == correct_user_name and password == correct_password:

                       print("登录成功")


               else:


                       print("用户名或者密码错误")


通常我们使用import语句来引入模块,语法如下:


       import module1 [  ,  module2[ . . . . . moduleN]  ]


当解释器遇到import语句,如果模块在当前的搜索路径就会被导入,调用的时候使用模块名.函数名来进行调用以上的示例为例,我们新建user.py文件调用login..py模块中的方法


user.py 文件内容如下:


       # 导入模块


       import login


       # 现在可以调用模块里包含的函数了


       login_handler("python", "123456")


一个模块只会被导入一次,不管你执行了多少次import,这样可以防止导入模块被一遍又一遍地执行。


在user.py 页面执行控制台输出:登录成功,证明调用login.py中的方法成功。


       from ...  import ...


模块提供了类似名字空间的限制,允许Python从模块中导入指定的符号(变量、函数、类等)到当前模块。导入后,这些符号就可以直接使用,而不需要前缀模块名


       from modname import name1[, name2[...... nameN]  ]


例如,要导入模块login 的login_hander函数


# 直接导入法


       from login import loginHandler


       login_handler("1","123")


form ...  import  *


把一个模块的所有内容全部都导入到当前的命名空间也是可行的


from  modname import *




包(package)是Python中对模块的更高一级的抽象。简单来说,Python允许用户把目录当成模块看待。这样一来,目录中的不同模块文件,就变成了[包]里面的子模块,此外,包目录下还可以有子目录,这些子目录也可以是Python包。这种分层,对模块识别、管理,都是非常有好处的。


       特别地,对于一些大型Python工具包内,可能有成百上千个不同功能的模块。科学计算领域,SciPy、NumPy、Matplotlib 等第三方工具,都是用包的形式发布的。



包定义



常见的包结构如下:


       packageName


               __init__.py


               moduleName1.py


               moduleName2.py


包路径下必须存在__init__.py文件


使用Python包


Python 包的使用和模块的使用类似,下面是导入的语法:


       import 包名.包名.模块名

相关文章
|
2天前
|
存储 Unix Shell
|
3天前
|
Python
Python中re模块的正则表达式
【6月更文挑战第2天】了解Python的re模块,它是处理正则表达式的核心工具。正则表达式用于在文本中查找特定模式。本文讨论了re模块的用法和技巧,包括导入模块、匹配、分组、替换文本、编译正则表达式以及使用预定义字符类、量词、锚点等高级功能。通过实例展示了如何在Python中执行这些操作,帮助提升文本处理能力。掌握这些技巧将使你更有效地利用正则表达式解决字符串处理问题。
10 2
|
5天前
|
Python
Python文件的异常、模块与包
Python文件的异常、模块与包
11 3
|
7天前
|
数据采集 数据可视化 数据挖掘
Python 模块
Python 模块
|
8天前
|
Python
python语法中错误的文件或模块导入
【5月更文挑战第19天】
13 1
|
10天前
|
监控 网络协议 Python
Python中常用网络编程模块
Python中常用网络编程模块
15 0
|
12天前
|
Python
Python中的模块与包——深入理解与应用
Python中的模块与包——深入理解与应用
|
12天前
|
存储 Python
Python中的函数与模块:核心概念与实践
Python中的函数与模块:核心概念与实践
|
16天前
|
Python
python(pip)包/模块:如何离线安装?
python(pip)包/模块:如何离线安装?
11 0
|
22天前
|
Python 人工智能 数据可视化
Python模块与包(八)
Python模块与包(八)
20 0
Python模块与包(八)