模块、包
- 1.模块导入的方式
- 2.使用as给模块取一个别名(大驼峰命名法)
- 3.从模块中导入部分工具
- 4.从模块中导入全部工具
- 5.模块搜索顺序
- 6__name__
- 7.包
- 8.发布模块、安装模块、卸载包
- 9.pip安装第三方模块
本系列博文来自学习《Python基础视频教程》笔记整理,视屏教程连接地址:http://yun.itheima.com/course/273.html
模块:每个以.py 结尾的源代码文件就是一个模块。模块名也是一个标识符,所以需要满足标识符的命名规则。在模块中定义的全局变量、函数、类,都是提供给外界直接使用的工具。模块就好比工具包想要使用这个工具包,就需要先导入这个工具包。
模块是最高级别的程序组织单元。模块被导入后,在该模块文件定义的所有变量名都会以被导入模块对象成员的形式被调用。也就是说,模块文件的全局作用域变成了模块对象的局部作用域。即模块能够划分系统的命名空间,避免了不同文件变量重名的问题。
1.模块导入的方式
方式1
import 模块1,模块2
方式2(官方推荐使用)
import 模块1
import 模块2
导入之后使用 模块名.方法 的方式调用模块内的工具
2.使用as给模块取一个别名(大驼峰命名法)
import 模块名 as 模块别名
import numpy as np
3.从模块中导入部分工具
from 模块名 import 工具名
直接使用工具名调用工具,不需要加**模块名.**来调用工具
注意事项:两个不同的模块中,导入相同名字的函数,后面导入的函数会覆盖掉前面导入的函数。
可以通过给同名函数中的一个起别名的方式来解决这个问题
#from cyy_01_测试模块1 import say_hello
from cyy_02_测试模块2 import say_hello as module2_say_hello
from cyy_01_测试模块1 import say_hello
say_hello()
module2_say_hello()
输出
我是模块1
我是模块2
将带入代码全部写在文件的顶部,一旦发现冲突能够及时处理
4.从模块中导入全部工具
from 模块名 Import *
便利:不需要模块名就能够调用工具
缺点:函数重名现象没有任何提示,出现问题不好排查
72-76
5.模块搜索顺序
模块的搜索顺序:在当前目录 搜索 指定模块名的文件,如果有就直接导入;如果没有就再搜索系统目录。
注意: 给一个文件命名时,不要和 系统模块的文件名 重名,这样可能会导致程序无法执行
6__name__
每一个文件都应该是可以被导入的,当导入文件时,文件中所有没有任何缩进的代码都会被执行一遍。
模块可以提供全局变量、函数,类。但是,直接执行的代码不可以向外界提供的工具。
当文件被导入时,会直接执行的代码实际上不需要执行,这时需要使用__name__这个属性。\
__name__属性在本文件执行时,是__mian__的值,但是文件作为模块执行时,对应的值是模块名称。所以可以应用这个特性来编写文件对的测试代码,在设计模块代码时,可以采用下面的结构测试代码。
#导入模块
#定义全局变量
#定义类
#定义函数#编写测试代码
def main():#....pass
if __name__=="__main__"main()
80
7.包
包:是一个包含多个模块(一个文件就是一个模块)的特殊目录,这个特殊的目录 有一个 特殊的文件 :__init__.py
包命名 和 变量的命名方式一样,用小写字母+_来命名
优点:使用 import 包名,可以一次性导入 包 中的所有模块
新建一个包有两个步骤:
step1:新建一个文件夹,在文件夹中编写 需要给外界提供的.py文件和__init__.py文件
step2:在__init__.py中填写内容
具体操作如下:
step1 : 新建一个包,两种方法:
1.1新建一个Directory,在该目录下再新建一个__init__.py文件
1.2.直接新建 Python Package,输入包的名字后,在新建的目录下会自动包含一个空白的__init__.py文件
step2 : 新建好包目录,在该目录下编辑各种模块,在__init__.py文件中 指定对外界提供的模块列表
from . import send_massage
from . import receive_massage
.表示从当前目录下导入摸一个模块
综上:当多个模块有关联时,就可以整合成一个包
8.发布模块、安装模块、卸载包
如果希望自己开发的文件,分享给其他人,可以制作压缩包分享给其他人。
step1: 制作压缩包,setup.py文件
from distutils.core import setup
setup(name=“cyy_massage”,
version=“1.0”,
description=“itheima’s 发送和接受消息”,
long_description=“完整的发送和接收消息的模块”,
author=“itheima”,
author_email=“xxxxxxx@163.com”,
url=“www.xxx.com”,)
setup.py文件格式固定,不能在pycharm 中执行,只能在终端中执行。并且希望在什么环境下运行,就使用相应版本的python解释器。
step2: 构建,模块
python3 setup.py build
step3: 生成发布压缩包
python3 setup.py sdist
生成一个.tar.gz 的文件,可以分享给别人
其他人如果拿到了这个.tar.gz这个文件夹之后,可以安装这个模块:先解压缩这个文件,使用usdo 执行setup.py 安装文件
tar zxvf cyy_massage-1.0.tar.gz
PKG-INFO文件中保存着包的基本信息,可以通过下面命令查看基本信息
cat PKG-INFO
sudo python setup.py install
卸载模块:直接从安装目录底下删除就可以了
导入模块->模块名.__file__查看模块的完整路径切换到对应的文件下删掉那个文件就可以了
rm -r XXX
9.pip安装第三方模块
第三方模块:知名团队 开发出来,并且 被广大程序员 广泛使用 的Python包/模块。
pygame:一套非常成熟的游戏开发模块
pip是一个现代的的、通用的python包管理工具。提供了Python包的下载、安装、查找、卸载等功能。
安装命令:
sudo pip install 模块名
卸载命令;
sudo pip uninstall 模块名
将模块安装到Python 3.x 下要使用pip3
sudo pip3 install 模块名
sudo pip3 uninstall 模块名
python 下安装ipython
sudo apt install ipython