import的本质解析


Posted in Python onOctober 30, 2017

上一篇文章中我们介绍了python中hashlib模块用法示例,详情参见:https://3water.com/article/127103.htm。今天我们看看import的有关内容。

编程时总是用到import导入,动不动就导入,很简单,但import到底是个什么功能,它的本质是什么?

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

1.1 导入方法:

import module

import module1, module2

from module import logger

from module import logger as frank

1.2 导入的本质: 把python文件解释一遍

1.3  import module_name

      实际上相当于 module_name 的所有代码复制与此, 当要使用时,取用其中的变量和函数 module_name.name,  module_name.logger

1.4  from module_name import name

       实际上相当于将module_name 中 name 那部分代码复制与此,便可以直接引用 name='alex', 直接可以调用 变量 name

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

1.1 导入的本质: 就是执行该包目录下的_init_.py 文件

1.2 导入优化:

实例 , 下面的代码需要来不停地调用 module_test 这个模块, 若有200个这样的调用,就得来来回回地找,影响效率, 此时可以将 "import module_test" 转化为 “from module_test import test”

def logger(): 
 module_test.test()
 print(' in the logger')
def search():
 module_test.test()
 print("in the search")

总结

以上就是本文关于import的本质解析的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:浅谈Python由__dict__和dir()引发的一些思考、13个最常用的Python深度学习库介绍等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

Python 相关文章推荐
python解决字典中的值是列表问题的方法
Mar 04 Python
Python解释执行原理分析
Aug 22 Python
Python实现的一个简单LRU cache
Sep 26 Python
Python压缩和解压缩zip文件
Feb 14 Python
Python协程的用法和例子详解
Sep 09 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
python 经典数字滤波实例
Dec 16 Python
python实现双色球随机选号
Jan 01 Python
python音频处理的示例详解
Dec 23 Python
Pytorch中expand()的使用(扩展某个维度)
Jul 15 Python
python中hashlib模块用法示例
Oct 30 #Python
浅谈Python由__dict__和dir()引发的一些思考
Oct 30 #Python
Android分包MultiDex策略详解
Oct 30 #Python
Python 判断是否为质数或素数的实例
Oct 30 #Python
基于Python __dict__与dir()的区别详解
Oct 30 #Python
浅谈使用Python变量时要避免的3个错误
Oct 30 #Python
Python中进程和线程的区别详解
Oct 29 #Python
You might like
php线性表顺序存储实现代码(增删查改)
2012/02/16 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
2014/06/12 PHP
PHP中的插件机制原理和实例
2014/07/08 PHP
php中in_array函数用法探究
2014/11/25 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
PHP创建多级目录的两种方法
2016/10/28 PHP
jquery 操作DOM案例代码分享
2012/04/05 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
2013/05/17 Javascript
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
JavaScript实现iframe自动高度调整和不同主域名跨域
2016/02/27 Javascript
js简单判断flash是否加载完成的方法
2016/06/21 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
解决ajax不能访问本地文件问题(利用js跨域原理)
2017/01/24 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
2017/12/06 jQuery
js中的闭包学习心得
2018/02/06 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
Promise扫盲贴
2019/06/24 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
Python运行提示缺少模块问题解决方案
2020/04/02 Python
matplotlib jupyter notebook 图像可视化 plt show操作
2020/04/24 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
某科技软件测试面试题
2013/05/19 面试题
创建文明城市标语
2014/06/16 职场文书
保密工作目标责任书
2014/07/28 职场文书
2014年民政工作总结
2014/11/26 职场文书
中学生综合素质自我评价
2015/03/06 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
mysql中int(3)和int(10)的数值范围是否相同
2021/10/16 MySQL
vue项目中的支付功能实现(微信支付和支付宝支付)
2022/02/18 Vue.js
Oracle使用别名的好处
2022/04/19 Oracle