博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
day16 模块导入及环境变量
阅读量:5037 次
发布时间:2019-06-12

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

"""今日内容:    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.pyimport m2print(m2.y)x = 666# m2.pyimport m1print(m2.x)y = 888# 解决# m1.pyx = 666import m2print(m2.y)"""

 

转载于:https://www.cnblogs.com/lice-blog/p/10816376.html

你可能感兴趣的文章
百度坐标(BD-09)、国测局坐标(火星坐标,GCJ-02)和WGS-84坐标互转
查看>>
pig自定义UDF
查看>>
输入名字显示其生日,没有则让输入生日,做记录
查看>>
爬虫综合大作业
查看>>
HTML canvas原生js实现鼠标画图
查看>>
《程序设计入门——C语言》翁恺老师 第一周编程练习记录
查看>>
IE8兼容性视图问题
查看>>
Kubernetes 运维学习笔记
查看>>
Centos6.9下RabbitMQ集群部署记录
查看>>
Python之基本的日期与时间转换 datetime、 dateutil模块
查看>>
android studio
查看>>
色彩大全,色彩配色大全
查看>>
mpeg文件格式分析 分类: 生活百科 201...
查看>>
并查集 经典 畅通工程
查看>>
Spark MLlib 之 Naive Bayes
查看>>
synchronized关键字
查看>>
自定义DataSourceProvider
查看>>
客户端向服务器提交数据,表单形式
查看>>
工具-VS2015前端开发工具简介
查看>>
php修改SESSION的有效生存时间
查看>>