模块导入的五种方式
1、import 模块名
2、from 模块名 import 方法名
3、from 模块名 import *
4、import 模块名 as 别名
5、from 模块名 import 方法名 as 别名
注意:import可以在程序中的任意位置使用,第一次使用import关键字导入模块后,会将模块加载到内存中,后续针对同一模块的import不会重新执行模块内的语句。
第一次导入模块执行的三件事
1、创建一个以模块的名称空间
2、执行这个名称空间里面的代码
3、可以通过 模块名 '.'的方式引用模块内的变量、方法等。
import与from…import导入的对比
1、import需要通过点的方式来引用模块中的元素
2、from…import是将原模块中的变量直接引入到现有空间,不需要通过点的方式来引用
3、但是from…imort导入的这种方式会存在变量名冲突的问题
from … import *
把模块中所有的不是以下划线(_)开头的名字都导入到当前位置
python文件的两种功能
一个编写好的python文件可以有两种用途:用作脚本;用作模块
脚本:一个文件就是整个程序,用来被执行
模块:文件中存放着一堆功能,用来被导入使用
在python中,为我们提供了一个全局变量 name
当文件被当做脚本时执行时:name 等于’main’
当文件被当做模块导入时:name 等于 模块名
模块搜索路径
模块的引用也是按照一定的顺序进行引用的
这个顺序是:先从内存中已经加载好的模块寻找,如果没找到则从内置模块中查找,如果内置模块也找不到,那么接下来就去sys.path中路径包含的模块中寻找。如果还找不到就会报错
注意python中import和from import 的区别
首先明确:尽量不要为了图省事使用from xxx import *
python中有两种导入模块的方式,一种是import xxx,另一种是from xxx import yyy,两者的区别在于,
第一种仅仅导入一个模块,并且将该模块执行了一遍,if __main__ =="__main__"里面的没有执行。同时,有在当前的命名空间中导入变量,需要通过xxx.yyy的方式使用导入模块中的变量、函数、类等;
第二种则将模块中的变量yyy导入了当前命名空间,因此使用时可以直接以yyy调用,使用这种导入方法时,需要注意当前的命名空间是否有重名的,from xxx import *这种方式尽量不要使用,因为这样就破坏了对命名空间的管理。
ps:使用from xxx import *时是不能导入以单下划线开头的保护属性和以双下划线开头的私有属性的
首先你要了解 import 与 from…import 的区别。
import 模块:导入一个模块;注:相当于导入的是一个文件夹,是个相对路径。
from…import:导入了一个模块中的一个函数;注:相当于导入的是一个文件夹中的文件,是个绝对路径。
所以使用上的的区别是当引用文件时是:
import //模块.函数
from…import // 直接使用函数名使用就可以了
所以
from…import *:是把一个模块中所有函数都导入进来; 注:相当于:相当于导入的是一个文件夹中所有文件,所有函数都是绝对路径。
结论:
from…import *语句与import区别在于:
import 导入模块,每次使用模块中的函数都要是定是哪个模块。
from…import * 导入模块,每次使用模块中的函数,直接使用函数就可以了;注因为已经知道该函数是那个模块中的了。