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生成指定长度的随机数密码
Jan 23 Python
详细解读Python中的__init__()方法
May 02 Python
Python内存管理方式和垃圾回收算法解析
Nov 11 Python
Python快速排序算法实例分析
Nov 29 Python
Python遍历pandas数据方法总结
Feb 09 Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 Python
python算法与数据结构之冒泡排序实例详解
Jun 22 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
Tensorflow中批量读取数据的案列分析及TFRecord文件的打包与读取
Jun 30 Python
如何基于Python实现word文档重新排版
Sep 29 Python
Django web自定义通用权限控制实现方法
Nov 24 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 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脚本的10个技巧(3)
2006/10/09 PHP
PHP中的CMS的涵义
2007/03/11 PHP
linux下删除7天前日志的代码(php+shell)
2011/01/02 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
PHP命名空间(Namespace)的使用详解
2013/05/04 PHP
处理单名多值表单的详解
2013/06/08 PHP
PHP文件生成的图片无法使用CDN缓存的解决方法
2015/06/20 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
Javascript this指针
2009/07/30 Javascript
Javascript 刷新全集常用代码
2009/11/22 Javascript
在JS中解析HTML字符串示例代码
2014/04/16 Javascript
jQuery修改CSS伪元素属性的方法
2014/07/30 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
ExtJs动态生成treepanel的Json格式
2015/07/19 Javascript
关于angular js_$watch监控属性和对象详解
2017/04/24 Javascript
D3.js实现拓扑图的示例代码
2018/06/30 Javascript
jQuery分组选择器简单用法示例
2019/04/04 jQuery
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
使用Python的Django框架实现事务交易管理的教程
2015/04/20 Python
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
python Crypto模块的安装与使用方法
2017/12/21 Python
Python 数据处理库 pandas 入门教程基本操作
2018/04/19 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
SQL注入攻击的种类有哪些
2013/12/30 面试题
vue路由实现登录拦截
2021/03/24 Vue.js
《梅花魂》教学反思
2014/04/30 职场文书
小学优秀教育工作者事迹材料
2014/05/09 职场文书
学雷锋倡议书
2015/01/19 职场文书
公司经营目标责任书
2015/01/29 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
一文搞懂MySQL索引页结构
2022/02/28 MySQL
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript