Loading

10.模块和包

模块的概念
  模块是python程序架构的一个核心概念
  每一个以扩展名py结尾的python源代码文件都是一个模块
  模块名同样也是一个标识符,需要符合标识符的命名规则
  在模块中定义的全局变量,函数,类都是提供给外界直接使用的工具
  模块就好比是工具包,要想使用这个工具包中的工具,就需要先导入这个模块
 
模块的两种导入方式
  1. import 模块名1,模块名2 (不推荐使用,PEP8规范要求我们每个导入应该独占一行)
  2.import 模块名1
     import 模块名2
 
  导入之后
  通过模块名.使用模块提供的工具 -- 全局变量、函数、类
 
 
import导入模块时指定别名
  使用as指定模块的别名
  如果模块的名字太长,可以使用as指定模块的名称,已方便在代码中使用
  语法:
       import 模块名 as 模块别名
       模块别名命名时应该符合大驼峰命名法
 
from ... import 导入
  如果希望从某一个模块中,导入部分工具,就可以使用 from ... import 的方式
  import 模块名 时一次性把模块中所有工具全部导入,并且通过模块名/别名访问
语法:
导入后
  不需要通过模块名.
  就可以直接使用模块提供的工具 -- 全局变量、函数、类
  如果两个模块,存在同名的函数,那么后导入模块的函数,会覆盖掉先导入的函数
  开始时import代码应该统一写在代码的顶部,更容易及时发现冲突
  一旦发现冲突 可以使用as 关键字给其中一个工具起一个别名
 
from ... import *
这种方式 * 可以直接导入该模块下的所有工具,不需要再一个一个导入
但是该方式 导入模块下 函数有重名冲突的话,不会有任何提示
 
模块搜索顺序
Python解释器在导入模块时
  1.搜索当前目录指定模块名的文件,如果有就直接导入
  2.如果没有,再搜索系统目录
 
  在开发时,给文件起名,不要和系统文件重名
  Python中每一个模块都有一个内置属性 __file__可以查看模块的完整路径
语法
 
 
开发原则--每一个文件都应该是可以被导入的
  一个独立的Python文件就是一个模块
  在导入文件时,文件中所有没有任何缩进的代码,都会被执行一遍
  实际开发中,每一个模块都是独立开发的,大多都有专人负责
 
__name__属性
  开发人员通常会在模块下方增加一些测试代码,仅在模块内使用,而被导入到其他文件中不需要执行
  __name__是一个Python的内置属性,记录着一个字符串
  如果是被其他文件导入的,__name__就是模块名
  如果是当前执行的程序使用__name__,__name__ 就是__main__,保存的固定的字符串
 
对模块测试的代码,只有在执行模块时,才会运行
__name__在当前模块执行的时候,只会== __main__
所以我们可以直接判断 __name__ == __main__
编辑器里面可以直接输入main 快捷导入
 
在开发模块中,我们可以在代码最下方定义一个main函数,编写测试代码针对该py文件进行测试
在if __name__ == '__main__':里面执行main函数
这样在其他模块导入该模块,不会执行测试代码
 
 
包(Package)
  包是一个包含多个模块的特殊目录
  目录下有一个特殊的文件__init__.py
  包名的命名方式和变量名一致
 
好处:
  使用 import 包名 可以一次性导入包中所有的模块
 
1.点击Directory在项目中创建一个文件夹目录,但是需要自己在目录下 手动创建一个__init_.py文件
2.使用pycharm自带的 python Package 功能 创建目录,会自动在目录下生成一呃 __init__.py文件
 
__init__.py
要在外界使用包中的模块,需要在__init__.py中指定对外界提供的模块列表
在包中创建了个模块,在模块写了一个send方法,要想在外界使用,需要在__init__ 中指定向外界提供的模块
要使用包中的模块,在其他文件中直接使用 import导入然后调用
调用使用 包名.包模块名.模块方法名()
 
 
 
发布模块
如果希望自己开发的模块,分享给其他人,可以按照以下步骤操作
 
制作发布压缩包步骤
1.创建 setup.py文件-文件里面固定的格式
有关参数的详细信息,可以参阅官方网站:https://docs.python.org/3/distutils/apiref.html
2.构建模块
1.打开终端命令行,进入到setup.py 上一级目录
2.执行构建命令: python3 setup.py build
 
执行完以后,会在当前目录下生成build目录,里面包含所打包的包和模块
3.生成发布压缩包
执行固定命令:python3 setup.py sdist
 
 
之后会生成一个dist文件夹,里面包含我们所打的压缩包
 
 
当别人拿到我们分享的压缩包 或者我们拿到其他人分享的压缩包,在压缩包目录下
安装模块压缩包
1.手动解压,需要手动移动文件到项目里面,再导入包
2.命令解压安装:这种方式安装之后,可以直接在项目中导入包,包不在项目文件里也可以导入使用
命令安装后,项目下没有包文件,可以直接导入使用
命令解压安装:
1..在压缩包目录下
tar -zxvf py_message-1.0.tar.gz (压缩包名)
2.在解压完的目录下安装,之后就可以在项目中直接导入
sudo python3 setup.py install
卸载模块压缩包
直接从安装目录下,把安装模块的目录删除就可以, 包名.__file__可以直接查看包的路径
1.手动删除
2.命令删除
cd 到site-packages下
sudo rm -r 包名*
 
pip 安装第三方模块
  pip是一个现代的,通用的python包管理工具
  提供了对python包的查找、下载、安装、卸载等功能
  格式:
  pip install 模块名
  pip uninstall 模块名
 
 
 

posted @ 2021-02-24 12:03  木子七  阅读(28)  评论(0编辑  收藏  举报