• Python的模块,模块的使用、安装,别名,模块作用域


    模块和包

      所谓的模块就是将不同功能的函数分别放到不同的文件中,这样不仅有利于函数的维护,也方便了函数的调用。在Python中,一个.py文件就是一个模块(Module)。

      在模块的上层有一个叫做包(Package)的目录。此目录的目的是避免模块的重名。

    别名

    导入模块时,还可以使用别名,这样,可以在运行时根据当前环境选择最合适的模块。比如Python标准库一般会提供StringIOcStringIO两个库,这两个库的接口和功能是一样的,但是cStringIO是C写的,速度更快,所以,你会经常看到这样的写法:

    try:
        import cStringIO as StringIO
    except ImportError: # 导入失败会捕获到ImportError
        import StringIO

    这样就可以优先导入cStringIO。如果有些平台不提供cStringIO,还可以降级使用StringIO。导入cStringIO时,用import ... as ...指定了别名StringIO,因此,后续代码引用StringIO即可正常工作

     

    模块加载和作用域

      模块语句会在首次导入时执行
      顶层的赋值语句会创建模块属性:在导入模块时,文件顶层(不在def和class之内)赋值变量的语句,会建立模块对象的属性,赋值的变量名会存储在模块的命名空间内
      模块的命名空间能通过属性__dict__或dir(M)获取:由导入而建立的模块的命名空间是字典
      模块是一个独立的作用域(本地变量就是全局变量):在模块中,模块范围会在模块加载后变成模块对象的属性辞典,导入后,模块文件的作用域就变成了模块对象的属性的命名空间

    导包过程都发生了什么

      执行了这个包的__init__文件

      创建了一个模块属性(import后面的)

      变量名会存储在模块属性的名称空间中
      将模块属性加载到执行文件的全局作用域中 
     
     
     
     
  • 相关阅读:
    设计模式(十七)Observer模式
    设计模式(十六)Mediator模式
    设计模式(十五)Facade模式
    设计模式(十四)Chain of Responsibility模式
    设计模式(十三)Visitor模式
    设计模式(十一)Composite模式
    设计模式(十二)Decorator模式
    设计模式(十)Strategy模式
    python 函数编程
    python import hashllb
  • 原文地址:https://www.cnblogs.com/benson321/p/10117897.html
Copyright © 2020-2023  润新知