概念
python中的模块是什么?简而言之,在python中,一个文件(以“.py”为后缀名的文件)就叫做一个模块,每一个模块在python里都被看做是一个独立的文件。模块可以被项目中的其他模块、一些脚本甚至是交互式的解析器所使用,它可以被其他程序引用,从而使用该模块里的函数等功能,使用Python中的标准库也是采用这种方法。
分类
在Python中模块分为以下几种:
系统内置模块,例如:sys、time、json模块等等;自定义模块,自定义模块是自己写的模块,对某段逻辑或某些函数进行封装后供其他函数调用。注意:自定义模块的命名一定不能和系统内置的模块重名了,否则将不能再导入系统的内置模块了。例如:自定义了一个sys.py模块后,再想使用系统的sys模块是不能使用的;第三方的开源模块:这部分模块可以通过pip install进行安装,有开源的代码;
使用模块
我们先来看一个例子,导入系统内置的sys模块:
在第二行处,写了这样一句话:“import sys”,表示使用系统自带的sys模块,因此,在下面的代码里,就可以使用sys模块里的函数:“sys.argv”,它的作用是返回命令行的参数列表。
使用关键词“import”,后面跟具体的模块名称,则可以导入某一个模块;同一个模块不管你执行了多少次“import”,只会被导入一次,以防止模块一遍又一遍的被执行;“import”应该被放在代码的顶端;
接下来我们导入一个自定义的模块,首先我们定义一个模块,并且把这个模块的名字叫做“myprint.py”,如下图所示:
这个模块里定义了一个函数,打印输入的参数,并且在后面再加上一行自定义打印的文字。将这个文件保存,接下来让我们看调用方法:
在调用的地方,同样只需要输入“import myprint”,然后就可以在任意地方调用了,调用的方法也是一样,用该模块的名字.函数名称(参数)就能达到调用目的。
from...import
刚才我们提到了引入一个模块使用“import”关键词,它将把这个模块整个引入进来,那么,from...import则是引入一个指定部分到当前的命名空间中来,例如我们有如下图所示的一个模块:
上面的模块定义了两个函数,分别是“print_myself”和“print_other”,现在我们用from...import使用这个模块,并且只想使用第一个函数,如下图:
从上面的两个例子,我们可以看到,“import”和“from...import”的作用都是引入一个模块,它们的区别在于:
“import”是引入一个完整的模块,“from...import”是引入模块中的一个或多个指定部分;“import”引入模块后,如果需要使用模块里的函数方法,则需要加上模块的限定名字,“from...import”则不用加模块的限定名字,直接使用其函数方法;值得一提的是,还有一种引入模块的方法:“from...import*”,举例如下图:
请看,刚才运行时会出错的地方“print_other”不会出错了!但是,绝大多数编程人员不会这么写,因为它一次性的把一个模块里的所有函数、变量都一次性的引入进来了(单下划线“_”开头的名字不在此列),有可能会覆盖现有代码的定义;
小结
Python中模块化的好处多多,总结起来,有如下优点:
提高了代码的可维护性;一个模块编写完毕之后,其他模块直接调用,不用再从零开始写代码了,节约了工作时间;避免函数名称和变量名称重复,在不同的模块中可以存在相同名字的函数名和变量名,但是,切记,不要和系统内置的模块名称重复;
举报/反馈

程序员编程学习

394获赞 835粉丝
hello world!!欢迎来到程序员的世界!!
关注
0
0
收藏
分享