二十四、模块、if__name__=="__main__":、包、__init__.py的作用、模块的发布安装

一、模块的介绍(必须导入import  模块名)

1、random模块:

用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b

需要导入这个模块才可以使用这个函数:

2、os模块

__file__ 是用来获得模块所在的路径的

二、在python3安装pygame模块:

sudo  pip3  install  pygame           (在python2 中 :   sudo   pip   install   pygame)

import   pygame    ——导入包,没有出现错误就安装成功

三、模块初识

例如:

1、创建个模块文件   sendmsg.py    写个方法

扫描二维码关注公众号,回复: 2590185 查看本文章

2、再创建个模块文件 main.py

3、如果sendmsg.py   有多个文件, test1  test2

① 可分开导入:

② 合在一起导入(用的多)

③ *代表导入所有的模块,但如果模块中有相同的方法名, 容易混乱,建议少用*这个方法

4、如果是类里的方法:

5、有路径的话,例如aa文件夹下有个bb文件夹,bb文件夹下有个sendmsg方法

6、使用as起个别名(换个名字)

7、注意

注意:不要起的名字跟系统模块名字一样的。

优势:特别适合于共同开发:自己写自己的模块,并自己测试。

8、if__name__=="__main__":

① 当你导入一个模块的时候,会把这个模块的从头到尾的功能,都执行一遍。

② __name__这个东西:自己调用的时候就是__main__,别人去调用的时候显示的是当前模块的文件名字。

③ 在模块文件中可添加上   if__name__=="__main__":

方便自己调试用的,又不影响别人调用

只有自己调用时,才执行缩进的命令,用import导入时,不会执行缩进的内容,可大胆方便调试

四、(了解即可)__all__ 的作用

__all__是一个字符串list,用来定义模块中对于from XXX import *时要对外导出的方法和属性,即要暴露的接口,但它只对import *起作用,对from XXX import XXX不起作用。

总结:这样可以防止别人导入不需要的模块。

五、包、__init__.py的作用

要想把所有的模块文件放入文件夹中,必须在文件夹里创建__init__.py这个文件,才能打成包,且文件必须编辑。

1、一个文件夹想要变成包:需要有__init__.py文件;

2、只要导入了一个包,这个包里面的__init__.py会自动的执行;

3、在__init__.py文件中万能的导法:from . import xxx, xxxx, xxxxx  (其中xxx代表模块文件)

六、模块的发布、安装

想在任何一个地方进行导入都是可以的。

(1)发布

1、把模块文件放到一个文件夹包(里面包含模块文件和__init__.py文件)  —在这里给文件包取名TestMsg(自己随意定义的名,不固定)

2、创建一个setup.py文件,与TestMsg在一个目录下

setup.py文件写的固定代码如下:  里面的汉字自己定义

from distutils.core import setup

setup(name="模块名称", version="版本(自己定义例如1.0)", description="模块描述", author="模块作者", py_modules=

['TestMsg.sendmsg', 'TestMsg.recvmsg'(此处主要是包含的模块内容,     格式'文件名.模块文件')])

3、构建模块:输入命令,自己选择版本

python2 setup.py build          发布python2版本的命令

python3 setup.py build          发布python3版本的命令

4、生成发布压缩包  (自己选择版本输入)

python2 setup.py sdist

python3 setup.py sdist

(2)解压、安装

1、要想使用,解压

例如 模块压缩包名 :  Pytest-1.0.tar.gz   (定义的模块名称-版本)

例如下载安装包解压:    tar -zxvf Pytest-1.0.tar.gz

可查看PKG-INFO 文件,里面是定义的一些信息

2、安装到python3 中有两种方法:

① sudo  python3  setup.py  install

② pip install 模块的名

(3)删除安装的模块

① 可先查看 :  pip3   list        ——(在linux中可用)  例如查看出   Pytest(1.0) 文件

② 删除: sudo pip3 uninstall  Pytest

七、常见模块

常用标准库:

常用扩展库:

猜你喜欢

转载自blog.csdn.net/xk1761299425/article/details/81367135
今日推荐