分类目录:《系统学习Python》总目录


模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便再利用,同时提供自包含的命名空间从而避免程序出现变量名冲突。从实际的角度来看,模块往往对应于Python程序文件。每一个文件都是一个模块,并且模块在导入其他模块之后就可以使用被导入模块中定义的名称。模块也可以是使用如C、Java、C#等其他语言编写的扩展包,甚至还可以是在包导入时的文件路径。模块可以用下面两个语句和一个重要的内置函数进行处理:

  • import:使用户程序(导入者)以一个整体获取一个模块
  • from:允许用户程序从一个模块文件中获取特定的名称
  • imp.reload:提供了一种在不终止Python程序的情况下重新载入模块文件代码的方法

简而言之,模块是提供自包含的变量的包(也就是所谓的命名空间)从而将部件组织为系统的一种可行方式。一个模块文件顶层定义的所有变量都变成了被导人的模块对象的属性,而导入给予了对模块的全局作用域中名称的访问权。也就是说,在模块导入时,模块文件的全局作用域变成了模块对象的属性命名空间。最终,Python的模块允许将独立的文件连接成一个更大的程序系统。

更确切地说,模块至少能扮演以下三个角色:

  • 代码重用:模块可以在文件中永久保存代码。不像在Python交互式命令行下输入的代码,当退出Python时就会消失,模块文件中的代码是持续存在的。你可以按照需要任意次数地重新载入和重新运行模块。同样重要的是,模块还是定义变量名的空间,被认作是属性,可以被多个外部的用户程序引用。如果使用得当,模块化编程设计能够将代码按照功能组织成可重用的单元。
  • 系统命名空间的划分:模块也是在Python中最高级别的程序组织单元。尽管它们的本质是变量名的软件包,但作为这种软件包,它们是自足的。除非你显式地导入一个文件,否则你将不会在另一个文件中看到那里面的变量名。类似于函数的局部作用域,这能帮助我们避免程序中的名字冲突。事实上,这一特性是不可避免的,因为所有的一切都“存在于”模块文件中,无论是执行的代码还是创建的对象都隐式地封装在模块之中。正是由于这一点,模块是组织系统组件的原生工具。
  • 实现共享的服务和数据:从操作层面来看,模块对实现系统内共享的组件是很方便的,而且只需要存在一份单独的副本。例如,假设你需要一个被多个函数或文件使用全局对象,那么你可以将它编写在一个模块中以便能被多个用户程序导入。

系统学习Python——模块和包:模块基础知识相关推荐

  1. 零基础如何系统学习Python?Python入门必看

    零基础如何系统学习python,绝大多数零基础转行者学习编程的目的就是想找一份高薪有发展前景的工作,哪个编程语言就业前景好越值得学习.零基础的同学学Python是一个不错的选择. 零基础学习pytho ...

  2. 系统学习Python——进度条模块tqdm

    分类目录:<系统学习Python>总目录 tqdm在阿拉伯语中是"进步"的意思(塔卡杜姆,تقدّم)并且是西班牙语中"我非常爱你"的缩写.在Pyt ...

  3. linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...

    本文主要向大家介绍了Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题,通过具体的内容向大家展现,希望对大家学习Linux运维知 ...

  4. 系统学习Python——字符串(str):字符串格式化表达-[基础知识]

    分类目录:<系统学习Python>总目录 相关文章: · 字符串格式化表达:基础知识 · 字符串格式化表达:格式化表达式 · 字符串格式化表达:格式化方法 Python还提供了一种高级的方 ...

  5. 初学者应该如何有效率的系统学习Python开发

    首先告诉你的是,零基础学习开始系统学习Python肯定难,Python的专业程度本身就不简单,学习这事本来就是一件非常煎熬的事情,人都不愿意学习,可是没办法,为了生存掌握一个技能,你必须学,如果你认真 ...

  6. 系统学习Python——单元测试unittest:测试报告

    分类目录:<系统学习Python>总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测 ...

  7. 系统学习Python——单元测试unittest:命令行执行测试

    分类目录:<系统学习Python>总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测 ...

  8. 系统学习Python——单元测试unittest:编写测试用例

    分类目录:<系统学习Python>总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测 ...

  9. 系统学习Python——单元测试unittest:批量执行测试文件

    分类目录:<系统学习Python>总目录 相关文章: · 单元测试unittest:框架结构 · 单元测试unittest:测试固件 · 单元测试unittest:编写测试用例 · 单元测 ...

最新文章

  1. linux笔记 第3天
  2. LiveVideoStack线上分享第三季(三):大规模视频处理的挑战与应对
  3. uva 1605 ——Building for UN
  4. 2018最新版硬盘装系统,不要U盘也能装
  5. BZOJ4372: 烁烁的游戏【动态点分治】
  6. java 读取 jar properties_java:如何读取properties文件内容
  7. Android播播放完SD卡指定文件夹音乐之后,自动播放下一首
  8. Ubuntu16.04安装VirtualBox及无法启动的解决办法
  9. zip、rar等密码破解软件
  10. opencv读取颜色通道
  11. iOS深拷贝和浅拷贝
  12. linux文件授权用户创建
  13. 服务器自带的防篡改,防篡改系统
  14. Application启动流程
  15. linux发音,你发对了吗
  16. docker安装青龙面板薅羊毛(新手教程,大佬可略过)
  17. 数据结构与算法10:图与图搜索
  18. CSDN学习业务年终总结
  19. python词频统计之红楼梦_用 Python 分析《红楼梦》,后四十回是曹雪芹所写
  20. MBA-day24 最值问题

热门文章

  1. win7计划任务报该任务映像己损坏或己篡改
  2. 5g 天线 校准网络_电视天线帮助器使HDTV天线校准Swift完成
  3. win10系统的字体突然变成繁体字?解決微軟鍵盤那些坑
  4. 长时间待机的监控摄像机可以持续多久
  5. mac 安装cnpm
  6. 用Sandcastle生成CHM1.x中文文档
  7. .net 软件 CPU 占用率高问题处理
  8. 为开发者提供的10款Web应用程序
  9. epplus 速度_C#EPPlus创建多个选项卡会导致空引用异常(C# EPPlus create many tabs causes a null reference exception)...
  10. Pannellum 360全景图片展示