转于:http://www.cnblogs.com/itfat/p/7481972.html

博主:东大网管

一、定义:

 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)

包:用来从逻辑上组织模块的代码,本质就是一个目录(必须带有一个__init__.py文件)。

二、导入方法:

 A、格式:import module_name

 B、引用脚本里的函数用方法module_name.logger()

 C、import module1_name,module2_name

   ==>导入多个脚本模块

 D、from module_alex import *

   ==>这里相当于导入module_alex脚本文件里的所有代码

 E、from module_alex import m1,m2,m3

   from module_alex import logger as logger_alex

    ==>这里相当于导入module_alex脚本里的logger函数,并给它起别名为logger_alex,注意这里的 logger不能写成 logger();

    ==>用from的方法,这个想再引用module_alex里的函数或者变量,直接logger()就OK了。如果有别名那么直接执行logger_alex()

三、import本质

 ==>把模块的所有代码解释了一遍,赋值给module_alex

 A、from module_alex import name的本质(把name这个代码复制一份到当前脚本)

 B、import本质(路径搜索和搜索路径)

  # 导入模块的本质:就是把python文件解释一遍,然后赋值给模块名;(import test 相当于 test='test.py all code')

  # 导入模块的过程:找文件,找文件所在的路径,找sys.path

  ==>所以 我们需要把当前脚本的绝对路径的父父路径,加到sys.path里去,这样就可以找到其他模块。

 C、所以我们引入一个新模块os,os.path.abspath(__file__)可以获得当前模块的绝对路径

 D、然后再通过os.path.dirname可以获取到除文件名以外的路径,我们使用2次,就可以得到父父级目录,现在我们获得了父父级目录,我们把目录加到 sys.path去,但是我们注意我们需要把这个目录放到列表sys.path的第一个位置去~!

 E、导入包的本质就是执行该包下面的__init__.py文件

四、导入优化

最新文章

  1. (3)WebApi客户端调用
  2. Openwebrtc
  3. ubuntu查看内存占用和查看cpu使用情况的简单方法(ubuntu内存管理)
  4. MYSQL数据库表中字段追加字符串内容
  5. Shell教程4-Shell替换
  6. 【转载】在 Visual Studio 2012 中创建 ASP.Net Web Service
  7. SPRING STS Virgo OSGI 开发一 : bundle 项目的创建
  8. 【CSS3】
  9. Java基础知识强化28:Scanner类之Scanner类的概述
  10. WPF 接收exe传的值
  11. CentOS挂载硬盘
  12. EXT中导出表格中的数据到Excel
  13. eclipse中注释的代码依然会执行的解决方法
  14. Linux的50个基本命令
  15. win10安装nodejs遇到提示错误代码2503怎么办
  16. 希尔&计数&基数排序
  17. 理解 Linux 的处理器负载均值
  18. Linux设备驱动剖析之SPI(三)
  19. Android的音频解码原来是直接调用的本地C方法直接通过硬件解码
  20. Java Float类型 减法运算时精度丢失问题

热门文章

  1. 核函数 深度学习 统计学习 强化学习 神经网络 xx
  2. 记一次Net软件逆向的过程(经典)
  3. Android底部菜单栏+顶部菜单
  4. abap Excel 导入
  5. Python日期和时间
  6. 项目中nodejs包高效升级插件npm-check-updates
  7. 自定义jsonp请求数据
  8. CKeditor插件开发流程(一)
  9. mysql表数据压缩
  10. 3D卡片折叠动画自定义下拉框