• 模块 包


    模块
    一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀

    模块可以包含可执行的语句和函数的定义,这些语句的目的是初始化模块,它们只在模块名第一次遇到导入import语句时才执行
    我们可以从sys.modules中找到当前已经加载的模块,sys.modules是一个字典,内部包含模块名与模块对象的映射,该字典决定了导入模块时是否需要重新导入。

    冲突问题
    每个模块都是一个独立的名称空间,定义在这个模块中的函数,把这个模块的名称空间当做全局名称空间,
    这样我们在编写自己的模块时,就不用担心我们定义在自己模块中全局变量会在被导入时,与使用者的全局变量冲突

    首次导入模块my_module时会做三件事
    1为源文件创建名称空间
    2在新创建的命名空间中执行模块中包含的代码
    3创建变量指向该空间

    为模块起别名
    if file_format == 'xml':
         import xmlreader as reader
    elif file_format == 'csv':
         import csvreader as reader
    data=reader.read_date(filename)
    示范

    一行可以导入多个模块,但不建议这么做

    from  ... import  ...

    from 语句相当于import,也会创建新的名称空间,但是将my_module中的名字直接导入到当前的名称空间中,

    在当前名称空间中,直接使用名字就可以了

    python中的变量赋值不是一种存储操作,而只是一种绑定关系

    注意   *  与  __all__['字符串类型的变量名']

    模块的循环引用问题  可以循环 但不建议,会出问题

    我们可以通过模块的全局变量__name__来查看模块名:
    当做脚本运行:
    __name__ 等于'__main__'
    当做模块导入:
    __name__= 模块名
    作用:用来控制.py文件在不同的应用场景下执行不同的逻辑
    if __name__ == '__main__':

    模块的查找顺序是:内存中已经加载的模块->内置模块->sys.path路径中包含的模块

  • 相关阅读:
    设计模式-组合模式
    WWDC2017-advanced_animations_with_uikit
    PS--人物皮肤处理流程(一)
    PS--人物黄金色调
    废墟调色规律
    PS--色彩调试
    PS--磨皮技巧
    PS 部分技巧快捷键
    PS--图片调色
    PS--增加照片暗部的亮度
  • 原文地址:https://www.cnblogs.com/XLHIT/p/10656414.html
Copyright © 2020-2023  润新知