零基础学Python(第2版)
上QQ阅读APP看书,第一时间看更新

2.2.3 模块导入的规范

模块是类或函数的集合,用于处理一类问题。模块的导入和Java中包的导入的概念很相似,都使用import语句。在Python中,如果需要在程序中调用标准库或其他第三方库的类,需要先使用import或from…import…语句导入相关的模块。

1.import语句

下面这段代码使用import语句导入sys模块,并打印相关内容。


01     # 规范导入方式
02     import sys
03     
04     print (sys.path)
05     print (sys.argv)

【代码说明】

·第2行代码使用import语句导入了sys模块,sys模块是处理系统环境的函数的集合。

·第4行代码输出Python环境下的查找路径的集合,Python默认情况下会查找sys.path返回的目录列表。列表是Python内置的数据结构,定义了一组相同意义的数据,通常用来作为参数或返回值。关于列表的知识请参考第4章的内容。本行代码的输出结果如下。


['','C:\\Users\\hchlcomputer\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\idlelib',
'C:\\Users\\hchlcomputer\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip',
'C:\\Users\\hchlcomputer\\AppData\\Local\\Programs\\Python\\Python37\\DLLs',
'C:\\Users\\hchlcomputer\\AppData\\Local\\Programs\\Python\\Python37\\lib',
'C:\\Users\\hchlcomputer\\AppData\\Local\\Programs\\Python\\Python37',
'C:\\Users\\hchlcomputer\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages']

·第5行代码中的sys.argv是存储输入参数的列表。默认情况下,argv自带的参数是文件名。输出结果如下。


[' ']

2.from…import…语句

使用from…import…语句导入与使用import语句导入有所不同,区别是前者只导入模块中的一部分内容,并在当前的命名空间中创建导入对象的引用;而后者在当前程序的命名空间中创建导入模块的引用,从而可以使用“sys.path”的方式调用sys模块中的内容。

下面这段代码实现了与上面代码相同的功能,不同的是使用了from…import…语句导入指定内容。


01     #不规范导入方式
02     from sys import path
03     from sys import argv
04     
05     print (path)
06     print (argv)

【代码说明】第5、6行代码直接调用path、argv列表的内容,没有模块名的限定,但这种写法不够规范。如果程序比较复杂,导入了很多模块,阅读程序的人并不了解path、argv来自哪个模块。而通过sys.path、sys.argv的写法可以清楚地知道path、argv来自sys模块。