Python公开课 - 详解模块

前言

模块是一个包含所有你定义的函数和变量的文件,可以被别的程序引入,以使用该模块中的函数等功能。

现在流行的模块化设计也是这个概念,一个项目经过模块化设计后,模块接口需要做标准化处理,这样可以方便在其他项目中进行复用,提高开发效率。

制作一个模块

我们可以编辑一个module.py文件

def my_print(info):
    print("module: %s" %info)

保存后,我们就可以在其他的文件中引用并使用其中的函数功能了

>>>import module
>>>module.my_print('hello world')

输出:
module: hello world

一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行。

模块的路径

当我们使用import语句的时候,Python解释器是怎样找到对应的文件的呢?

这就涉及到Python的搜索路径,搜索路径是由一系列目录名组成的,Python解释器就依次从这些目录中去寻找所引入的模块。

>>> import sys
>>> sys.path
['', '/usr/lib/python35.zip', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/usr/lib/python3.5/lib-dynload', '/usr/local/lib/python3.5/dist-packages', '/usr/lib/python3/dist-packages']

我们可以通过sys.path.append()来添加指定的目录

包 - Package

在大多数情况,会选择以目录的方式来整理模块文件,例如创建一个test目录,并将module.py移动到该目录下,如果这时候直接使用my_print函数就会发现失败了,原因是找不到该目录

from test import module

module.my_print("hello world")


输出:

Traceback (most recent call last):
  File "test.py", line 1, in <module>
    from test import module
  File "/home/ubuntu/learn/test.py", line 1, in <module>
    from test import module
ImportError: cannot import name 'module'

这时候就算我们通过sys.path.append('test')也不行,

那么该怎么办呢,这时候需要在test目录下创建一个__init__.py文件就可以了

__init__.py的作用

含有__init__.py文件的目录会被Python解释器作为Package来对待。

我们在导入一个包时,实际上是导入了它的__init__.py文件。这样我们可以在__init__.py文件中批量导入我们所需要的模块,而不再需要一个一个的导入。

相关阅读


相关推荐
  1. 成都市双流县爱心幼儿园 - 成都市幼儿园黄页
  2. 掉在森林里的手机
  3. 警方通报:武汉男子持刀至五死一伤,嫌犯已跳桥
  4. Python基础 - requests以post方式发送json数据
  5. 详解Tesseract之安装及基本使用
  6. 无锡市梨庄实验小学
  7. 武汉动物园火烈鸟孔雀排队打疫苗
  8. Python公开课 - Python与操作系统
  9. 杨宗保纳妾
  10. 幸福的家庭
  11. 广州邮电通信设备公司幼儿园 - 广州幼儿园黄页
  12. 脱单!武汉的相亲角在哪你知道吗?
  13. Python公开课 - 数据抓取之Selenium使用(下)
  14. 重庆市万州区沙河小学
  15. 都江堰市中兴镇幼儿园 - 成都市幼儿园黄页
  16. 沈阳市和平区和平大街第二小学(和平二校)
  17. 宁乡县东湖塘镇在此山小学
  18. 湖北将发放消费券 - 武汉新鲜事
  19. Python公开课 - 全文检索模块Whoosh详解(3)
  20. 天津市河北区双语幼儿园 - 天津幼儿园黄页
  21. 昆明市官渡区爱多新加坡国际幼儿园 - 昆明市幼儿园黄页
  22. 深圳市南山区卓雅小学
  23. 河北省邯郸市永年县施小天使双语幼儿园第一分园 - 邯郸幼儿园黄页
  24. 武汉推出越王勾践剑交通卡
  25. 上海市闵行区实验小学(春城校区)
  26. 央媒聚焦!国庆假期173.78万人次打卡大美黄陂
  27. 易中天给英雄武汉的一首诗 - 武汉新鲜事
  28. Python源码剖析 - Python的总体架构
  29. 遵义市红花岗区钛厂幼儿园 - 遵义市幼儿园黄页
  30. 武汉女子网上做兼职被骗六十五万
  31. 武汉00后大二学妹拍视频月入七十万
  32. 昆明市西山区云光幼儿园 - 昆明市幼儿园黄页
  33. 沈阳市东陵区 育英CAI幼儿园 - 沈阳幼儿园黄页
  34. 蜻蜓的眼睛
  35. 西安市临潼区晨曦幼儿园 - 西安幼儿园黄页
  36. 小巨人
  37. python中带b字符串转换
  38. Selenium Chrome WebDriver配置代理访问的两种方式
  39. 欧阳修智救狄青
  40. 武汉一女子七天被骗220万
  41. 一家人都怎样说
  42. 一只患有恐高症的鸟
  43. NumPy - 简明教程(中)
  44. 惠州市惠阳崇雅中学初中部
  45. 无谓的争论
  46. 神奇听诊器
  47. 菏泽市程堤口小学
  48. 程序自动去除图片水印
  49. 江门市美景小学
  50. 郑州高新区外国语小学