"""
今日内容:
1、模块
2、模块的导入
3、环境变量sys.path
4、模块间的相互调用
""" """
# 1、模块
-- 什么是模块?
-- 模块是一系列具有相似功能的函数的集合体 -- 为什么要有模块?
-- 因为一系列功能相同功能的函数为了方便统一进行管理,将这些函数放进一个文件中就形成了一个模块 -- 如何使用模块?
-- 使用模块时首先需要导入模块 --> 导入模块的方法为 import 函数名 或 from...import... -- 模块的分类:模块可以分为四类
-- 1.使用python编写的.py文件
-- 2.把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)
-- 3.使用C编写并链接到python解释器的内置模块
-- 4.已被编译为共享库或DLL的C或C++扩展
""" """
# 2、模块的导入
import 模块名
-- 首次导入模块名经过的三件事:
-- 将被导入的模块进行编译,编译成为.pyc文件
-- 将被导入模块从上至下进行执行,形成被导入模块的名称空间
-- 在导入模块的文件中生成一个与被导入模块同名的变量名,指向被导入模块的名称空间 -- 再次导入该模块时
-- 不再进行导入模块的前两模块,只进行第三步 -- 起别名导入
-- 在进行模块导入时可以为模块起别名,
-- 方式为: import 模块名 as 别名 -- 模块的分类:
-- 内置模块与自定义模块(系统自带的自定义模块、第三方自定义的模块、自己自定义的模块) -- 模块的加载顺序
-- 模块的加载顺序是: 内存 > 内置 > 自定义的模块(按照sys.path中的顺序进行加载,可使用print(sys.path)查询环境变量) from..import...
-- 导入完成的三件事
-- 1.将被导入的模块编译形成对应的pyc文件
-- 2.进入模块,从上执行执行模块中的代码,将产生的所有名字存放在该模块文件的全局名称空间中
-- 3.在导入模块的文件中形成(一个或多个)名字指向模块全局名称空间中的(一个或多个)具体名字 -- 起别名
-- from 模块名 import 模块中的名字1, ..., 模块中的名字n
-- from 模块名 import 名字 as 别名 -- from...import导入依赖环境变量 sys.path from..import *(不建议使用)
-- 模块中默认会添加 __all__ ,__all__ 就是管理模块中能被 * 导入的变量们
-- __all__可以自定义,自定义 * 能导入的变量们, __all__的list中名字全部可以自定义
-- __all__ = ['a', 'b', 'c', 'd_', '_e'] 就是个列表,可以直接进行修改 -- 系统默认添加的__all__中不会纳入 _开头的名字,所以默认在外界通过from...import *无法导入_开头的名字
-- _开头的名字对from...import *是隐藏的,指名道姓依然可以被外界导入使用
""" """
# 3、环境变量
-- 环境变量是存放路径的一个list,在需要进行路径查找时,会按照环境变量中的顺序进行查找,第一位的一定是当前文件夹。
-- 环境变量的操作:
-- 查询: 首先导入sys模块,然后使用print(sys.path)就可以查询
-- 清空: 使用sys.path.clear()就可以清空环境变量,任何导入都不能使用
-- 添加: 添加指定路径到环境变量
-- sys.path.append()
-- sys.path.insert() """ """
# 4、模块间的相互导入
-- 模块间的相互导入有链式导入及循环导入
-- 链式导入
-- 由于导入模块时经过了三个过程,所以在链式导入时会首先进入到被导入的模块中执行,如果在被导入模块中还导入了其它模块,就会进入其它模块,直到没有模块导入
-- 循环导入
-- 如果在m1中导入了m2,在m2模块中导入了m1,那么在执行m1时,m2实际的名称空间就是不完整的名称空间,如果需要m2的某个功能时,可能会报错
-- 解决循环导入名称空间加载不全的问题很简单,在导入自定义模块时,在使用的上一行进行导入就行
-- 导入非自定义的模块可以在文件的开头就进行导入 # 问题
# m1.py
import m2
print(m2.y)
x = 666 # m2.py
import m1
print(m2.x)
y = 888 # 解决
# m1.py
x = 666
import m2
print(m2.y)
"""

最新文章

  1. SSIS 对数据排序
  2. JSP中的EL
  3. 使用pdb调试python
  4. 解决办法:CMake编译时出现“error in configuration process project files may be invalid”
  5. 3C Tic-tac-toe
  6. 对Linux 专家非常有用的20 个命令
  7. swift菜鸟入门视频教程-07-闭包
  8. win10无法新建文件夹怎么办 win10右键新建菜单设置方法
  9. sql执行机制
  10. 进程间通信之利用CreateFilemapping()
  11. 前端js总结
  12. npm install 失败
  13. 理解koa2 之 async + await + promise
  14. Kafka技术内幕 读书笔记之(五) 协调者——协调者处理请求
  15. Storm消息容错机制(ack-fail机制)
  16. java数据结构之hashMap
  17. ubuntu下设置jupyter notebook 2017年07月29日 19:28:34 小旋锋 阅读数:8329 标签: ubuntu 更多 个人分类: python 二三事 来源:http://blog.csdn.net/suzyu12345/article/details/51037905 Ipython Notebook现在已经改名为Ipython jupyter,是最知名最好用的
  18. TF 设置GPU模式训练
  19. python 获取文件的修改时间
  20. Ubuntu14.04 安装中文输入法

热门文章

  1. 公共钥匙盒(CCF)【模拟】
  2. MacOS使用zsh & oh-my-zsh
  3. SQL Server 基础:朝花夕拾
  4. luogu 1373 小a和uim之大逃离 dp
  5. HDU - 5528Count a * b 数学公式推导
  6. 【线性代数】4-2:投影(Porjections)
  7. 二维DFT
  8. delphi将字符串转换成stringlist
  9. python 绘制五角星
  10. JavaWeb_(Hibernate框架)Hibernate中数据查询语句SQL基本用法