美文网首页
python模块

python模块

作者: 大墩子丶 | 来源:发表于2018-05-07 19:22 被阅读0次

    Python 中的模块

    模块是一个包含 Python 代码的 .py 文件
    模块既可以被导入到 Python 的交互式解释器中,也可以被导入到其他模块中,除此之外,模块还可以作为独立的脚本来执行。

    导入模块的动作由 import 语句完成,通常(非必需)将所有的 import 语句放在一个模块(或脚本)的开头处,被导入的模块名被放置在导入模块的全局符号表中。

    一个模块可以包含可执行语句和函数定义,这些语句用于初始化模块,它们仅在 import 语句中第一次遇到模块名时执行(如果文件作为脚本执行,它们也会运行)。

    Python 本身提供了大量的标准模块(例如:mathos),完整的列表可以在 Python Module Index 中找到,这些文件位于 Python 安装位置的 Lib 目录中。

    注意:标准模块的导入方式与用户自定义模块的导入方式相同

    import 语句

    可以使用 import语句导入一个模块,并使用点(.)运算符访问其中的名称(定义)。

    例如,我们编写了一个 script.py模块,来访问标准模块 math

    1. import math
    2. 
    3. print('pi:', math.pi)
    4. print('fabs:', math.fabs(-2))
    

    其中,pimath的属性,也就是数学中的圆周率 - π。而 fabs()是其中的函数,用于取绝对值。

    执行脚本:

    1. $ python script.py 
    2. pi: 3.141592653589793
    3. fabs: 2.0
    

    如果要导入多个模块,可以使用多个 import 语句:

    1. import math
    2. import os
    

    也可以将其合并为一个,模块名之间用逗号(,)进行分隔:

    1. import math, os
    

    from ... import ... 语句

    可以从模块导入特定的名称,而无需导入整个模块。

    例如,从math模块仅导入属性pi

    1. from math import pi
    2. 
    3. print('pi:', pi)
    4. 
    5. # 无效,引发 NameError
    6. #print('pi:', math.pi)
    7. #print('fabs:', fabs(-2))
    

    这时,要访问pi,不需要使用点运算符。

    注意: 在这种情况下,由于只导入了pi而没有导入其他名称,所以无法访问 fabs()

    from ... import * 语句

    可以使用星号(*)从模块中导入所有的名称。

    1. from math import *
    2. 
    3. print('pi:', pi)
    4. print('fabs:', fabs(-2))
    

    这样,math 模块中的所有定义都会被导入,这使得除了以下划线(_)开始的所有名字在范围内都是可见的。

    注意: 这种用法并不好,因为会引入一组未知的名称,而且有可能导致标识符的重复定义,可读性很差,所以不建议使用。

    import ... as ... 语句

    一旦模块名称过长,便可以在导入时进行重命名,帮助记忆。

    例如,将math重命名为m

    1. import math as m
    2. 
    3. print('pi:', m.pi)
    4. print('fabs:', m.fabs(-2))
    5. 
    6. # 无效,引发 NameError
    7. #print('pi:', math.pi)
    8. #print('fabs:', math.fabs(-2))
    

    自定义模块及调用

    自定义的python模块有两种,一种是把模块写成类,类里面有要调用的方法。另一种写成单独的py文件,没有类,里面全是函数。(有类才叫方法,没有类叫函数),也是所谓的面向过程的函数。
    第一种调用如下:
    例如在b.py里要调用a.py里的class A,A有方法a1, a2等

    #导入类A(这种更适合把模块写成类的)
    1. from a import A 
    2. 
    3. #调用类A的方法
    4. testa=A()
    5. testa.a1()
    

    第二种调用的时候导入模块,通过模块名.函数名()即可调用。
    调用模块如下:
    例如先写好a.py,里面有a1,a2,a3等函数。在b.py要调用模块a

    #导入模块a
    1. import a
    2. ....
    3. ....
    4. 
    5. #调用a模块的函数
    6. a.a1()
    7. a.a2()
    

    相关文章

      网友评论

          本文标题:python模块

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