python中的import和from

来源:互联网 发布:淘宝电话怎么转接人工 编辑:程序博客网 时间:2024/06/08 12:05

from语句是import的一种扩展,可以直接引入模块中的变量

模块只在第一次import或from的时候才会载入执行,并且只会执行以此,主要是由于该操作开销比较大。

之后的操作都只会取出已加载的模块对象,

import是指将整个模块对象赋值给变量名

from将一个或多个变量名赋值给另一个模块中的同名对象


import是如何工作的?

程序在第一次import时候,会进行以下三个操作:

找到模块文件

编译成位码

执行模块的代码来创建其所定义的对象

在此之后,python将载入的模块存储到sys.modue的表中,并在一次导入操作之后开始检查该表,如果不存在模块,将执行上述三个步骤


先说编译,在编译中,python会检查文件的时间戳。如果发现字节码比源代码旧,就会重新编译成pyc文件

最后一步,创建对象,python会执行上一步生成的pyc文件,文件中的所有语句会依次执行,从头到尾,而此步骤中任何对变量名的赋值操作,都会产生得到模块文件中的属性,当一个模块被import时候,该模块的print将被执行,而其def只是被简单的声明。

那么python会在哪儿找到搜素模块呢?

1、程序的主目录

2、Pythonpath目录

3、标准链接库目录

4、任何.pth文件的内容

最后,这四个组件组成就变成了sys.path ,

主目录:python首先会在主目录中查找搜索导入的文件,然后python会从左到右在pythonpath中查找。接着是标准库目录,最后是.pth目录


关于import与from

i而如果




from引入的变量名和此模块一样,会被覆盖

原创粉丝点击