博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day15
阅读量:4472 次
发布时间:2019-06-08

本文共 1237 字,大约阅读时间需要 4 分钟。

今日所学:

1.模块:模块的概念

2.导入的方式:import | from import
 -- 名称空间***** | 绝对导入 | 起别名
3.环境变量:sys.path 
4.导入模块的顺序
5.循环导入:模块间相互导入 

一;模块

常见的四种模块:module

1.使用python编写的.py文件
2.把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)
3.使用C编写并链接到python解释器的内置模块
4.已被编译为共享库或DLL的C或C++扩展

二导入模块完成的三件事:

第一次导入:

import 模块名
1.将被导入的模块编译形成对应的pyc文件
2.进入模块,从上执行执行模块中的代码,将产生的所有名字存放在该模块文件的全局名称空间中
3.在使用模块的文件中,产生一个与模块名(模块文件名)同名的名字,指向模块的全局名称空间
再次导入:
不再执行导入模块的前两步,只会走第三步:在当前模块中产生一个名字,指向第一次导入在内存中产生的全局名称空
模块的加载顺序:内存>内置>自定义
环境变量
环境变量:存放路径的list,第一位默认一定是当前执行文件所在的路径
import sys
 sys.path就是环境变量
清空环境变量:所有导入都不能使用了
sys.path.clear()
添加指定路径到环境变量
sys.path.append()
sys.path.insert()
from...import语法的导入:
导入完成三件事:
1.将被导入的模块编译形成对应的pyc文件
2.进入模块,从上执行执行模块中的代码,将产生的所有名字存放在该模块文件的全局名称空间中
3.在导入模块的文件中形成(一个或多个)名字指向模块全局名称空间中的(一个或多个)具体名字
链式导入:
t1导入m1,m1导入m2,m2导入m3
执行流程:右键执行t1,在t1导入m1模块的地方直接进入m1,去执行m1,同理在m1执行过程中遇到导入m2,会马上进入m2,去执行m2,一直到m3,m3执行完毕,会回到m2中导入m3的语句,接着往下执行m2,m2执行完毕回到m1,以此类推返回到t1
 在整个执行流程中,遇到任何模块的二次导入,都是直接引用内存中的名称空间,不会再次进入模块
循环导入:
循环导入的问题点:名字没有产生就使用名字
解决循环导入:先产生名字,在导入模块
      -- 将会产生循环导入的模块,导入语法延后 - 延后导入
问题
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)
 m2.py
y = 888
import m1
print(m2.x)

转载于:https://www.cnblogs.com/Fzhiyuan/p/10816849.html

你可能感兴趣的文章
make install fping
查看>>
面试笔试题
查看>>
#loj3051 [十二省联考2019] 皮配
查看>>
MySql可视化工具MySQL Workbench使用教程
查看>>
个人站立会议第二阶段07
查看>>
云时代架构阅读笔记五——Web应用安全
查看>>
IOS 单击手势和cell点击冲突
查看>>
学习_HTML5_day3
查看>>
计算机网络与应用第二次笔记
查看>>
Django之ORM查询
查看>>
学习python第七天
查看>>
Flask基础(07)-->正则自定义转换器
查看>>
网站架构模式(二)
查看>>
【数据结构】算法 LinkList (Add Two Numbers)
查看>>
Bugtags:移动时代首选 Bug 管理系统
查看>>
hibernate学习笔记之一 hibernate简介
查看>>
定时任务quartz
查看>>
Set集合和实现类
查看>>
Ubuntu 12.04安装vim和配置
查看>>
centos配置jdk
查看>>