Python3 模块

 

Python3 模块其实就是一些后缀名是.py的名字,当写好一个py脚本的时候可以通过别的py脚本 来import导入,导入方法有两种:

import 语句

import test 这样就导入了一个test的模块,当解释器遇到import语句时,会先搜索当前路径下的模块,若当前没有则会去系统路径里面搜索。

系统存放所有模块路径:,导入成功后,调用这样写     导入的模块名.xxx(导入的模块名.定义的函数名、方法名等等)

from…import 语句

from . import aaa

这样就导入了当前目录下的aaa模块,如果是导入一个模块的函数名或方法名: from aaa import a

需要调用直接可以写   模块名.函数名()

From…import* 语句

把一个模块的所有内容全都导入到当前的命名空间,这样虽然方便,但是有风险。若两个模块定义了相同的函数名和方法名,就重复了。

__name__属性

一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。  

例:

当别的程序引用的时候就变成了程序他人运行:

__all__属性

 

如上图,在一个程序中写上__all__属性的时候,表示把下面的函数名当做字符串写到列表中,什么意思呢?当另一种程序导入这个模块的时候只能调用这个程序的a函数,其它函数名或类名无法调用

__init__属性

 我们可以把一些关联性强的程序放到一个文件夹中,例如这样。

有一个test目录,里面存放了a.py  b.py两个程序,但是__init__.py这个文件是一定要存在的空的也行,不然导入文件夹test这个模块之后调用没有效果。

 __init__.py文件里也可以这样写:

这样调用的时候可以直接调a模块了。这个程序就叫做一个包

模块的发布、安装

当我们把一些程序放到一个目录里面,需要调用时,可以发布出来在安装,安装的时候会把这个整个程序放到系统路径的模块中,这样就不用每次进入到这个程序的相对路径然后导入了、

发布的时候需要在当前目录下建立一个setup.py,格式都是固定的,按照写就行了

1.发布,python3 setup.py build

2.打包:python3 setup.py sdist,然后会有一个dist目录,里面是已经打包好的程序。

,

3.安装,可以先把这个tar.gz文件拷贝到其它目录,或者其它同事电脑上,然后解压,进入到解压后的目录执行python3 setup.py install,这样这个程序就会加载到系统路径的模块了。

 

posted @ 2018-03-31 18:15  GeminiMp  阅读(142)  评论(0编辑  收藏  举报