模块

作者: 5f2a6061653d | 来源:发表于2019-03-07 11:09 被阅读8次

    模块是一个保存了Python代码的文件,其中可以包含变量、函数或类的定义,也可以包含其他各种Python语句。使用模块有以下三方面优势,具体如下所示:

    1.模块提高了代码的可维护性。在程序开发过程中,随着程序功能的增多,在一个文件中的代码会越来越长,从而造成程序不易维护,此时编程者可以把相关功能的代码分配到一个模块里,从而使代码更易懂、更易维护。

    2.模块提高了代码的可重用性。在应用程序开发中,编程者经常需要处理时间,此时不必在每个程序中写入时间的处理函数,只需导入time模块即可。

    3.模块避免了函数名和变量名冲突。由于相同名字的函数和变量可以分别存在于不同模块中,编程者在编写模块时,不必考虑名字会与其他模块冲突。

    在Python中,模块可以分为三类,具体如下所示:

    • 内置标准模块(标准库):Python自带的模块,如sys、os等。

    • 自定义模块:用户为了实现某个功能自己编写的模块。

    • 第三方模块:其他人已经编写好的模块。

    一个Python程序可由若干模块构成,一个模块中可以使用其他模块的变量、函数和类等,如下图所示。


    模块原理.png

    在上图中, a.py是一个顶层模块(又称主模块),其中使用了自定义模块b.py和内置标准模块,b.py也使用了内置标准模块。

    接下来简单演示模块的使用,如下所示。

    1 import math          # 导入内置标准模块math
    2 num = math.sqrt(9)   # 使用math模块中的sqrt()函数
    3 print(num)
    

    运行结果如下图所示。


    运行结果

    在上例中,1.py使用math模板中的sqrt()函数可以很方便地计算出64的算术平方根。

    模块的导入

    模块需要先导入,然后才能使用其中的变量或函数。在Python中使用关键字import导入某个模块,其语法格式如下:

    import 模块名 # 导入模块
    import 模块名1, 模块名2, ... # 导入多个模块
    import 模块名 as 别名 # 为模块指定别名
    

    其中,import用于导入整个模块,可用as为导入的模块指定一个别名。使用import导入模块后,模块中的对象均以“模块名(别名).对象名称”的方式来引用。

    接下来演示import关键字导入模块,如下所示。

    1 import math as m
    2 import sys, time
    3 print(m.sqrt(64))
    4 print(sys.platform)
    5 print(time.time())
    

    运行结果如下图所示。


    运行结果

    在上例中,第2行为math模块指定别名m,第3行一次导入多个模块。

    此外,若只想导入模块中的某个对象,则可以使用from导入模块中的指定对象,其语法格式如下:

    from 模块名 import 导入对象名 # 导入模块中某个对象
    from 模块名 import 导入对象名 as 别名 # 给导入的对象指定别名
    from 模块名 import * # 导入模块中所有对象
    

    注意使用from导入的对象可以直接使用,不需要使用模块名作为限定符,如下所示。

    1 from math import sqrt as st
    2 print(st(64))
    

    运行结果如下图所示。


    运行结果

    在上例中,第3行通过from关键字从math模块中导入sqrt()函数,然后再通过as关键字为sqrt()函数指定别名st。

    import与from导入模块各有特点,使用import导入模块时比较简单,使用from导入模块时需列出想要导入的对象名,但无论哪种导入方式,模块只能一次导入,另外,注意模块整体导入的开销是比较大的。

    相关文章

      网友评论

          本文标题:模块

          本文链接:https://www.haomeiwen.com/subject/dfdcrqtx.html