模块介绍

1、定义:

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

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

2、导入方法:

import module_name

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

import module1_name,module2_name

导入多个脚本模块

from module_alex import *

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

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()

3、import本质(把模块的所有代码解释了一遍,赋值给module_alex)

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

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

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

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

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

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

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

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

4、导入优化

最新文章

  1. wget 扒站
  2. Predicate接口和Consumer接口
  3. Android SDK Manager无法更新的解决
  4. Vim指令备忘
  5. Android MultiDex兼容包怎么使用?
  6. WCF - Self Hosting
  7. WeiXinMPSDK-微信C# SDK
  8. jquery在火狐浏览中上传图片并显示
  9. floodlight 学习(一)
  10. 积累的VC编程小技巧之属性页
  11. MySQL整数类型说明 int(5) vs int(7)
  12. shell快捷键
  13. (转)浅谈Session与Cookie的区别与联系
  14. python经典书籍推荐:python编码规范
  15. 第十一章 DNS服务器管理与配置
  16. 从零开始学安全(四)●Vmware CentOS 7 添加静态ip联网
  17. long数值 转换为时间
  18. js闭包实例汇总
  19. [转]ubuntu bits/predefs.h:没有那个文件或目录
  20. python 学习笔记 字符串和编码

热门文章

  1. JNIjw01
  2. TypeScript 教程&手册
  3. HTML5 canvas之基础篇(一)
  4. vs添加静态链接库+添加动态链接库+添加头文件目录
  5. spring: @RequestMapping注解
  6. Win7性能选项
  7. 【Python】unicode' object is not callable
  8. 如何发布二次开发后的openfire源码到linux服务器中
  9. New Concept English three (38)
  10. Ubuntu下VirtualBox kernel driver not installed