python学习笔记(六)之模块

(一)概念

1.1 模块的概念

当程序代码量变得相当大、逻辑结构变得非常复杂的时候,我们最好把代码按照逻辑和功能划分成一些有组织的代码块,并将其保存到一个个独立的文件当中。这些文件可以包含变量、可执行代码、函数、类或者这些东西的组合,这些自我包含并且有组织的代码块就是 模块 ( module )。模块是最高级别的 Python 代码组织单元。

1.2 模块的作用

  1. 代码重用:

    因为模块对应于 Python 文件,所以模块中的代码可以永
    久保存。你可以按照需要在代码中任意次数的使用导入的
    模块中定义的变量名(函数、类等),甚至可以重新导入
    模块。除了作为最高级别的Python 代码组织单元,模块
    (以及模块包)也是 Python 中程序代码重用的最高层次
    
  2. 系统命名空间的划分

    模块还是定义变量名的空间,其内部定义的变量名作为模	
    块的属性,可以通过导入被多个外部的文件中的代码引
    用。
    模块将变量名封装进了自己的命名空间,这一点对避免变	
    量名的冲突很有帮助。所有的一切都存在于 ”模块“ 中,
    可执行	的代码以及创建的对象都毫无疑问的封装在模块
    之中。正式由于这一点,模块是组织系统组件的天然工
    具。
    
  3. 实现共享服务和数据

    从操作的角度来看,模块对实现跨系统共享的组件是很方			
    便的,只需要在不同的文件中导入相同的模块即可。
    

1.3 模块和包的区别

模块:是一个python文件
包:是一个目录,可以包含多个模块,注意还必须__init__.py文件

(二)导入模块

2.1 第一次导入步骤

1、搜索找到模块文件。
2、编译成字节码(需要时)。
3、执行模块的代码来创建其所定义的对象,定义 import 语句所在文件的作用域的局部命名空间中的一个或多个变量名。

2.2 导入方式

  1. import 模块名
    调用:模块名. 功能名
  2. import 模块名 as 别名
    调用:别名.功能名
  3. from 模块名 import 功能名
    调用:直接功能名
  4. from 模块名 import 功能名 as 别名
    调用:直接用别名
  5. from 模块名 import * (一次性导入所有功能)
    调用:直接功能名

2.3 模块的搜索路径

返回导入模块时的搜索路径集,为一个list列表——sys.path
在这里插入图片描述

  • 从上面列出的目录里依次查找要导入的模块文件
  • ’ ’ 表示当前路径
  • 列表中的路径的先后顺序代表了python解释器在搜索模块时的先后顺序

添加新的模块路径:

  • sys.path.append(’/home/python/xxx’)
  • sys.path.insert(0,’/home/python/xxx’) ——确保先搜索到该路径
  • 注意点:sys.path.append(path)和sys.path.insert(path)添加的相关路径,在退出交互式环境或者IDE后会自动消失。

2.4 重新导入模块

import 导入模块只会导入一次,因此即使模块被修改了,import也不会重新导入
解决方案:

  1. 关闭终端,重新打开,然后再import 导入一次
  2. 用 reload 可以在不关闭终端的情况下重新导入

(三) 第三方模块的安装

3.1 使用pip命令安装

  • pip install 模块名
  • pip uninstall 模块名
  • pip freeze :查看都安装了哪些模块

3.2 whl下载安装

  • 网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
  • 下载:pip install 文件包名

3.3 直接复制的方式

3.4 anaconda

(四) 自定义模块

  • 在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。
  • 目录只有包含一个叫做__init__.py 的文件才会被认作是一个包,主要是为了避免一些滥俗的名字(比如叫做 string)不小心的影响搜索路径中的有效模块。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值