Python——包和模块
创始人
2024-03-29 14:09:49
0

模块与包是任何大型程序的核心,就连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 包名.包名.模块名

相关内容

热门资讯

不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Android|无法访问或保存... 这个问题可能是由于权限设置不正确导致的。您需要在应用程序清单文件中添加以下代码来请求适当的权限:此外...
【NI Multisim 14...   目录 序言 一、工具栏 🍊1.“标准”工具栏 🍊 2.视图工具...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
安卓文字转语音tts没有声音 安卓文字转语音TTS没有声音的问题在应用中比较常见,通常是由于一些设置或者代码逻辑问题导致的。本文将...
AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
APK正在安装,但应用程序列表... 这个问题可能是由于以下原因导致的:应用程序安装的APK文件可能存在问题。设备上已经存在同名的应用程序...
报告实验.pdfbase.tt... 这个错误通常是由于找不到字体文件或者文件路径不正确导致的。以下是一些解决方法:确认字体文件是否存在:...