美文网首页
Python模块

Python模块

作者: 04a07ffbfb62 | 来源:发表于2016-05-28 13:32 被阅读62次
    模块:可以将代码量较大的程序分割成多个有组织的、彼此独立但又能相互交互的代码片段。这些自我包含的有组织的代码段就是模块。
    模块在物理形式上表现为以.py结尾的代码文件

    一个文件被看作一个独立的模块,一个模块也可以被看作是一个文件。
    模块的文件名就是 该模块的名字加上扩展名.py。
    每个模块都有自己的名称空间。

    Python允许‘导入’其他模块以实现代码重用,从而也实现了将独立的代码文件组织成更大的程序系统

    Python中,模块也是对象;
    在一个模块的顶层定义的所有变量都在被导入时,成为了被导入模块的属性;

    Python程序架构
    一个Python程序通常包括一个顶层程序文件和其他的模块文件(0个、一个或多个)
    • 顶层文件:包含了程序的主要控制流程。
    • 模块文件:为顶层文件或其他模块提供各种功能性组件
      • 模块首次导入(或重载)是,Python会立即执行模块文件的顶层程序代码(不再函数内的代码),而位于函数主体内的代码直到函数被调用后,才会执行。
    查询所有模块

    help('modules')

    模块的执行环境

    模块是被导入的,但模块也可以导入和使用其它模块,这些模块用Python或其他编程语言写成;
    模块含有变量、函数以及类来进行其工作,而函数和类可以包含变量和其他元素;

    导入模块
    • 在导入模块时只能使用模块名,不加.py后缀;
    • import语句:导入指定的整个模块,包括生成一个以模块命名的名称空间(建议一个import语句只导入一个模块)
    • from-import语句:常用于导入指定的模块属性至当前名称空间;
    import和from-import都是赋值语句

    import 和 from是可执行语句,类似于def,因此,他们可以嵌套在if测试中,出现在def中;
    python执行到这些语句时才会对其进行解析,这意味着,所有来自模块的属性仅在import语句执行后才能使用;

    import和from都是隐性赋值语句

    import将整个模块对象赋值给一个变量名;
    from将一个或多个变量名赋值给导入此脚本的模块中的同名对象;

    模块就是名称空间

    模块的名称空间可以通过属性__dict__或dir()获取;
    模块是一个独立作用域;

    import的工作机制
    • 找到模块文件(在指定的路径下搜索模块文件)
    • 编译成字节码(文件导入时就会被编译,顶层文件的pyc字节码在内部使用后会被丢弃,被导入的文件才会留下pyc文件)
    • 执行模块的代码来创建其所定义的对象(模块文件中的所有语句会依次执行,从头至尾。)

    PS: 模块只在第一次导入时才会执行如上步骤(后续的导入操作只不过是提取内存中已加载的模块对象;reload() 可用于重新加载模块)

    相关文章

      网友评论

          本文标题:Python模块

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