热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python通信相关包_PYTHON学习笔记【模块和包】

1python中的模块在python中有一个概念叫做模块,这个和C语言中的头文件以及JAVA中的JAVA包很类似,比如在PYTHON中要调用sqrt函数

1python中的模块

在python中有一个概念叫做模块,这个和C语言中的头文件以及JAVA中的JAVA包很类似,比如在PYTHON中要调用sqrt函数,必须 用import关键字引入math这个模块。

通俗点,模块就好比是工具包,要想使用这个工具包中的工具(就好比函数),就必须导入这个模块。

import

在python中用关键字import来引入某个模块,比如要引入模块math,就可以文件开始的地方使用import math来引入。

import module1,module2...

在调用math模块中的函数时,必须 这样引用

模块名.函数名

importrandomprint(random.randint(0,5))

from ...import...

Python的from语句让你从模块中导入一个指定的部分到当前命名空间中:

from modulename import name[,name2...]

例如,要导入模块fib的fibonacci函数:

from fib import Fibonacci

注意:不会把整 个fib模块导入到当前的命名空间中,它中会将fib里的fibonacci单个引入。fromrandomimportrandintprint(randint(0,9))#直接写方法名

from...import*

把一个模块的所有内容全都导入到当前的命名空间,只需要如下声明:

from modname import *

注意:这提供了一个简单的方法来导入一个模块中的所有项目,然而这种声明不该被过多使用,因为不同模块可能存在一样的方法名字,导致后面导入的模块的方法覆盖了前面模块的同名方法。

as

给导入的模块重新命名importrandomasrdprint(rd.randint(0,5))

查看包的代码:

>>> import random

>>> random.__file__

'D:\Program Files\Python\Python37\lib\random.py'

定义自己的模块

在python中,每个python文件都可以作为一个模块,模块的名字就是文件的名字。

例,调用自定义模块

1.编写一个module1.py的模块#写一个工具方法,判断字符 是否为null,当字符串为none为null,还有''还为null,还有'  '也为nulldefisnull( str ):if notstr:return True

elifstr.strip() =='':return True

else:return False

deftest1():print("……中的test1方法……")

2.调用自己编写的模块(main.py)importmodule1

a ='a'print(module1.isnull(a))

module1.test1()frommodule1importisnull,test1

a ='a'print(isnull(a))

test1()

模块的测试和模块中的__all__

可以根据__name__变量的结果 能够判断出,是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行代码#写一个工具方法,判断字符 是否为null,当字符串为none为null,还有''还为null,还有'  '也为null__all__=['isnull']#表示被引用的方法,在from module1 import *有效,defisnull( str ):if notstr:return True

elifstr.strip() =='':return True

else:return False

deftest1():print("……中的test1方法……")# print(isnull(" ")) #这行虽然是测试代码,但只要被当作模块被导入就会自动执行#print(__name__)if__name__=='__main__':#由python解释器主动执行该模块代码,测试时执行,当被当作模块调用时,以下代码不执行print(isnull(" "))

2python中的包

引入包,包就是一个目录,把多个py文件放到同一个文件夹下。

执行顺序:当前目录-》python系统目录

Ø使用” import文件夹.模块“的方式导入,python3可以导入,python2不行

Ø使用”from文件夹import模块“的方式导入,python3可以导入,python2不行

Ø在包的文件夹上创建__init__.py文件,虽然 文件内容没有,但是python2可以用了。在python2中,有一个目录,并且目录下有一个__init__.py文件,才认为是包。

有__init__.py文件在python3中没有错,以后均在包的目录上新建一个__init__.py文件。

Ø在__init__.py文件中写入

from . import模块1

from . import模块2

那么可以使用“import文件夹”导入,也可以使用” from文件夹import模块”的方式导入

#encoding=UTF-8'''

import my_package.module1   # python3,引入包中的模块,方法1

a = 'a'

print(my_package.module1.isnull(a))

from my_package import module1  # python3,引入包中的模块,方法1

a = 'a'

print(module1.isnull(a))

'''importmy_package#引入包中的模块,方法3在包目录下的__init__.py文件 写代码from . import模块1a ='a'print(my_package.module1.isnull(a))

模块/包的发布

1.发布的模块/包的目录结构:

[root@localhost test_pub]# tree

.

├── my_package    #要发布的包名

│   ├── __init__.py

│   ├── module1.py  #待发布的模块1

│   ├── module2.py

│   └── __pycache__

│       ├── __init__.cpython-37.pyc  #.pyc是自解码文件

│       ├── module1.cpython-37.pyc

│       └── module2.cpython-37.pyc

└── setup.py    #与包同级

2.编辑setup.py文件

py_modules需要指明所需包含的py文件fromdistutils.coreimportsetup#setup(name='压缩包的名字',version='1.0',description='描述',author='作者',py_modules=['suba.aa','suba.bb'])setup(name='my_pub',version='3.7',description='没有',author='me',py_modules=['my_package.module1','my_package.module2'])

3.构建模块

python setup.py build

attachment.php?aid=707320

4.生成发布压缩包

python setup.py sdist

attachment.php?aid=707321

模块/包的安装、使用

1.安装的方式

找到模块的压缩包-》解决-》进入文件夹-》执行命令”python setup.py install”

注意:如果在install的时候,执行目录安装,可以使用”python setup.py install –prefix安装路径

attachment.php?aid=707322

attachment.php?aid=707323

2.模块的引入

在程序中,使用“from import ”即可完成对安装的模块的使用

from模块名import模块名或*

attachment.php?aid=707324

1.导入模块的路径设置

Ø查看模块搜索路径

attachment.php?aid=707325

Ø添加搜索路径

attachment.php?aid=707326

Ø重新导入模块

from imp import *

reload(模块名)

2.查看已经安装的模块help()

attachment.php?aid=707327

3.模块内定义的所有名称dir()函数

dir()函数能够返回由对象所定义的名称列表,例如:这一对象是一模块,则dir()函数可以找到模块内定义的所有名称(含函数、类、变量),以一个字符串列表的形式返回

dir()是有参数的,如果参数是模块名称(当然参数也可以是类,函数等),那么将返回这一指定模块的名称列表。如果没有参数,那么函数将返回当前文件(即当前模块的名称列表):比如你在test2.py下指定dir(test),那么返回test模块的名称列表,如果是dir(),那么返回test2.py名称列表

attachment.php?aid=707328

4.循环导入,两个模块互相导入

attachment.php?aid=707331attachment.php?aid=707330

attachment.php?aid=707332



推荐阅读
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 本文探讨了如何在给定整数N的情况下,找到两个不同的整数a和b,使得它们的和最大,并且满足特定的数学条件。 ... [详细]
  • 本文介绍如何使用 Python 提取和替换 .docx 文件中的图片。.docx 文件本质上是压缩文件,通过解压可以访问其中的图片资源。此外,我们还将探讨使用第三方库 docx 的方法来简化这一过程。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
author-avatar
爱生活爱花落_485
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有