在所有的语言中,语言的开发者都会为我们提供强大的库文件供我们调用,通过使用这些库文件,我们才可以把程序完美的运行起来,既然要用到库文件,我们就要导入我们需要使用的库文件,因为,机器是不知道我们想基于哪些库进行程序的编写的。在导入库的时候,不同的语言有自己的风格。例如在C/C++等语言中,我们使用#include <>或者#include “”来导入库或者头文件。那么在python中我们怎么导入库呢。
首先,在Python中,我们可以导入三种库:Python标准模块,Python第三方模块,自定义模块。标准模块是Python实现定义好的;Python第三方模块是Python爱好者或者Python研究者来定义的,并且开放出来,方便大家使用的;自定义模块是用户自己定义的,在自己程序运行需要使用到的。
其次,搞清楚导入模块的分类,那么下面就是怎么导入的问题了。一句话:用import导入。
导致分为以下几种:import modulename;from modulname import funcname
第一种:import modulename (关键字 模块名)
例如:import random
random.randrange(10)
通过这种导入,我们就可以使用这个模块中的公共的函数、类或属性。使用的形式就是modulename.funcname()
同时,import可以同时在一行语句中导入多个模块,例如,import modulename1, modulename2, modulename3
但是对于我这样的初学者来说,我感觉一次导入多个模块可读性不是很好,我更加倾向于一行导入一个模块会比较好。
第二种:from modulename import funcname (关键字 模块名 关键字 方法名)
这种导入就比第一种更加的具体,并不是导入整个模块,而是导入模块中的某个函数、类或属性。为什么要这样导入呢,因为,funcname被直接导入到本地的名字空间了,这样具体的导入后就可以在使用的时候直接使用import的funcname而不需要在funcname前面加上modulename.了,这样就方便快捷很多。
例如:from random import randrange
randrange(10)
注:这种导入的方式中有一种特殊的用法,就是将funcname换成 * ,导入 * 的效果是表示该模块的所有的公共对象(public object)都被导入到当前的名字空间,换句话说就是任何不以“__”开头的东西都被导入。
建议:
根据我对Python的使用以及经过网上的资料的查阅,汇总一下几点的建议:
[i] 如果对于某个模块的属性或者方法在当前程序中需要经常使用,那么就可以使用from modulename inport funcname,因为这样就可以避免重复的输入modulename;
[ii]如果导入的模块中的属性或者方法与当前程序中的某个模块或者函数等重名,那么就必须使用import modulename;
[iii]尽量少用from modulename import *,因为判断某个函数或者属性的来源有些困难,不方便调试,可读性也降低了;
[iv]尽量把import语句放在开头使用;
因为python解释器在执行语句的时候遵循作用域的原则。如果在顶层导入,那么就是作用的全局,如果在函数内部导入,那么就作用在这个局部,此时如果其他函数也用到这个模块,那就要重复导入,会带来一些麻烦的。同时建议在import的时候遵循这个顺序:标准库-第三方库-用户自定义。
以上是结合自己的使用经历和网上查阅的资料进行汇总的,如果有哪些写的不完善或者不妥的地方欢迎大家批评指正。
Python中关于导入(import)语句的使用说明,布布扣,bubuko.com
原文地址:http://blog.csdn.net/simongeek/article/details/25979591