大家好,我是IT分享者,人称皮皮。本篇我们来分析一下Python模块的引入和调用。一、Python中的Modules,有过C语言编程经验的朋友都知道,如果要引用C语言中的sqrt函数,必须使用#include语句导入头文件math.h,否则无法引用正常调用。那么在Python中,如果要引用一些其他的函数,该怎么办呢?Python中有一个概念叫模块,它很像C中的头文件和Java中的包,比如在Python中调用sqrt函数,必须使用import关键字引入math模块。让我们看一下Python中的模块。更简单地说:模块就像一个工具包。如果你想使用这个工具包中的工具(比如函数),你需要导入这个模块。二、模块介绍1、import在Python中,使用关键字import来导入某个模块。例如,如果你想引用模块math,你可以使用importmath在文件的最开头导入它。形式为:importmodule1,mudule2...当解释器遇到import语句时,如果模块在当前搜索路径中,就会被import。在调用math模块中的函数时,必须这样引用:模块名。为什么必须用模块名调用函数名?因为可能会出现这样一种情况:多个模块中的同名函数,此时如果仅仅通过函数名调用,解释器无法知道调用哪个函数。所以如果你像上面这样导入一个模块,你必须将模块名称添加到调用函数中。importmath#这个会报错printsqrt(2)#这样可以正确输出结果printmath.sqrt(2)有时候我们只需要使用模块中的某个函数,只需要导入该函数即可。这时候可以用下面的方法来实现:frommodulenameimportfunctionname1,functionname2...不仅可以导入函数,还可以导入一些全局变量,类等。注意:1、这种方式导入时,调用函数时只能给出函数名,不能给出模块名。但是,当两个模块包含同名函数时,后一个导入将覆盖前一个导入。也就是说,如果模块A中有一个函数function(),那么模块B中也有一个函数function(),如果先导入A中的函数,再导入B中的函数,那么当函数被调用时,执行模块B中的函数function。2.如果想一次导入math中的所有内容,也可以使用frommathimport来实现。2、from...importPython的from语句可以将模块中的指定部分导入到当前命名空间中。语法如下:frommodnameimportname1[,name2[,...nameN]]例如导入模块fib的斐波那契函数,使用如下语句:fromfibiimportfibonacci注意:不会将整个fib模块导入到当前命名空间,它只会导入fib中的斐波那契单独引入。3.from...import*将一个模块的所有内容导入当前命名空间也是可行的,只需使用以下语句:frommodnameimport*注意:这提供了一种导入模块中所有项的简单方法。但是,这种说法不宜过多使用。4.定位模块当您导入一个模块时,Python解析器按以下顺序搜索模块的位置:当前目录如果不在当前目录中,Python会搜索shell变量PYTHONPATH下的每个目录。如果没有找到,Python会在默认路径中查找。在UNIX下,默认路径一般是/usr/local/lib/python/模块搜索路径存放在系统模块的sys.path变量中。该变量包含当前目录、PYTHONPATH和安装过程确定的默认目录。三、as的三种用法1.with...as...第一种与with结合使用,主要用于文件读写操作,省去了关闭文件的麻烦。写入:withopen("文件路径","读写方式")as赋值变量:#执行代码块实例:#test.pywithopen("1.txt")asf:printf.read()#1.txt(二文件在同一目录下)运行结果:2.给导入的模块起别名导入一个模块就是给模块重命名,也就是给模块起一个别名。下面第三点演示了示例代码。3、与except结合使用第一种方法:将traceback模块别名为示例代码:importtracebackasatry:while1/0<0:printTrue第二种方法:与except结合使用,将捕获的异常对象赋值给e。示例代码:exceptExceptionase:print"e=",ea.print_exc()4.小结本文详细讲解了Python基础(模块)的介绍和调用。介绍了三个常用的模块。模块中的注意事项,以及实际操作中遇到的问题,提供解决方案。希望能帮助大家更好的学习Python。
