import的本质解析

上一篇文章中我们介绍了python中hashlib模块用法示例,详情参见:http://www.jb51.net/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深度学习库介绍等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

(0)

相关推荐

  • Python中import导入上一级目录模块及循环import问题的解决

    import上一级目录的模块 python中,import module会去sys.path搜索,sys.path是个列表,并且我们可以动态修改. 要import某个目录的module,我们sys.path.insert(0,somedir)来加入搜索路径,就可以import了. 既然这样,要import上一级目录的module,可以sys.path.insert(0,parentdir). 不过这种写绝对路径的方式,如果文件放到其它地方,就不行了. 所以用动态方法来获取上一级目录. impor

  • 详解Python中的from..import绝对导入语句

    相对或者绝对import 更多的复杂部分已经从python2.5以来实现:导入一个模块可以指定使用绝对或者包相对的导入.这个计划将移动到使绝对的导入成为默认的细节在其他版本的python中. 我们假设你有一个包目录,像下面这样: pkg/ pkg/__init__.py pkg/main.py pkg/string.py 上面定义了一个包称为 pkg 包含 pkg.main 和pkg.string 两个子模块.考虑在'main.py'中的代码,什么事情会发生如果我们执行语句 import str

  • Python import自定义模块方法

    python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的路径. 下面将具体介绍几种常用情况: (1)主程序与模块程序在同一目录下: 如下面程序结构: `-- src |-- mod1.py `-- test1.py 若在程序test1.py中导入模块mod1, 则直接使用import mod1或from mod1 import *; (2)主程序所在目录是模块所在目录的父(或祖辈)目录 如下面程序结构: `-- src |-- mod1.py |-- mod

  • Python import用法以及与from...import的区别

    在python用import或者from...import来导入相应的模块.模块其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模块导入到我们的程序中,我们就可以使用了.这类似于C语言中的include头文件,Python中我们用import导入我们需要的模块. eg: 复制代码 代码如下: import sys print('================Python import mode==========================

  • Python如何import文件夹下的文件(实现方法)

    Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行.要包含目录里的文件,PHP中只需要给对路径就OK.Python中则不同,下面来看看这个例子. 目录结构: a.py 要 import dir目录下的 b.py 文件.a.py代码如下: # coding=utf-8 "import dir 目录下的 b.py 文件" import dir.b prin

  • python在不同层级目录import模块的方法

    使用python进行程序编写时,经常会使用第三方模块包.这种包我们可以通过python setup install 进行安装后,通过import XXX或from XXX import yyy 进行导入.不过如果是自己遍写的依赖包,又不想安装到python的相应目录,可以放到本目录里进行import进行调用:为了更清晰的理清程序之间的关系,例如我们会把这种包放到lib目录再调用.本篇就针对常见的模块调用方法汇总下. 一.同级目录下的调有 程序结构如下: -- src     |-- mod1.p

  • import的本质解析

    上一篇文章中我们介绍了python中hashlib模块用法示例,详情参见:http://www.jb51.net/article/127103.htm.今天我们看看import的有关内容. 编程时总是用到import导入,动不动就导入,很简单,但import到底是个什么功能,它的本质是什么? 一. 模块:用来从逻辑上来组织python代码(变量,函数,类,逻辑,实现一个功能),本质就是,py结尾的python文件 1.1 导入方法: import module import module1, m

  • Java抽象的本质解析

    目录 Java抽象基础知识 抽象 抽象的定义 abstract的使用 抽象方法: 抽象类: 定义抽象类 抽象类的一些注意点 总结 茫茫人海千千万万,感谢这一秒你看到这里.希望我的能对你的有所帮助!共勉! 愿你在未来的日子,保持热爱,奔赴山海! Java抽象基础知识 抽象 抽象是从众多的事物中抽取出共同的.本质性的特征,而舍弃其非本质的特征的过程.具体地说,抽象就是人们在实践的基础上,对于丰富的感性材料通过去粗取精.去伪存真.由此及彼.由表及里的加工制作,形成概念.判断.推理等思维形式,以反映事物

  • java的package和import机制原理解析

    这篇文章主要介绍了java的package和import机制原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在说package.import机制前我们先来了解下java的CLASSPATH. CLASSPATH顾名思义就是class的路径,当我们在系统中运行某个java程序时,它就会告诉系统在这些地方寻找这个class文件 CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar; 这是

  • javascript中undefined的本质解析

    一.列出7种数据类型(面试可能问) Undefined Null Boolean String Number Symbol Object 二.undefined本质 undefined是window对象的一个属性,其类型是Undefined. 下面解释javascript中属性的本质,因为undefined是一个属性,了解undefine的本质要用到属性的本质. 三.属性本质 对JavaScript来说,属性并非只是简单的名称和值,JavaScript用一组特征(attribute)来描述属性(

  • Java import static及import原理区别解析

    import static静态导入是JDK1.5中的新特性.一般我们导入一个类都用 import com.....ClassName;而静态导入是这样:import static com.....ClassName.*;这里的多了个static,还有就是类名ClassName后面多了个 .* ,意思是导入这个类里的静态方法.当然,也可以只导入某个静态方法,只要把 .* 换成静态方法名就行了.然后在这个类中,就可以直接用方法名调用静态方法,而不必用ClassName.方法名 的方式来调用. 这种方

  • Java接口的本质解析

    目录 接口 接口的定义 接口和抽象的区别

  • Python中import机制详解

    Python语言中import的使用很简单,直接使用 import module_name 语句导入即可.这里我主要写一下"import"的本质. Python官方 定义:Python code in one module gains access to the code in another module by the process of importing it. 1.定义: 模块(module):用来从逻辑(实现一个功能)上组织Python代码(变量.函数.类),本质就是*.p

  • 详解Python中import机制

    Python语言中import的使用很简单,直接使用import module_name语句导入即可.这里我主要写一下"import"的本质. Python官方定义: Python code in one module gains access to the code in another module by the process of importing it. 1.定义: 模块(module):用来从逻辑(实现一个功能)上组织Python代码(变量.函数.类),本质就是*.py文

  • Python爬取豆瓣数据实现过程解析

    代码如下 from bs4 import BeautifulSoup #网页解析,获取数据 import sys #正则表达式,进行文字匹配 import re import urllib.request,urllib.error #指定url,获取网页数据 import xlwt #使用表格 import sqlite3 import lxml 以上是引用的库,引用库的方法很简单,直接上图: 上面第一步算有了,下面分模块来,步骤算第二步来: 这个放在开头 def main(): baseurl

  • Python入门基础之import机制

    一.前言 本文基于开源项目: github.com/pwwang/pyth- 补充扩展讲解,希望能够让读者一文搞懂 Python 的 import 机制. 1.1 什么是 import 机制? 通常来讲,在一段 Python 代码中去执行引用另一个模块中的代码,就需要使用 Python 的 import 机制.import 语句是触发 import 机制最常用的手段,但并不是唯一手段. importlib.import_module 和 __import__ 函数也可以用来引入其他模块的代码.

随机推荐