• Python-组织结构-目录结构、包导入、__init__文件、模块内置变量、* 导入限制


    __pycache__ .pyc文件,中间代码,提升python运行效率

    目录

      分档和归类

    Python项目组织结构

      包

        模块

          类

            函数、变量

      # 层级依次往下都是一对多关系

    Python项目目录结构

      ProjectName          项目根目录

        pkgName           项目包

        ...

        main.py           项目入口目录文件

    命名空间

      1. 区分不同包下模块

      2. 区分不同模块下类

      3. 访问 pkgName.modulName modulName.ClassName, 通过 . 进行访问

    区分包和普通文件夹

      1. 文件夹下是否有 __init__.py 文件

      2. 想导入__init__文件,则直接导入包名

    __init__文件

      1. 导入包、模块、类、函数、变量都会首先执行__init__内容

      2. 做包和模块的初始化工作

      3. 把模块公共导入代码和系统库内容放入 __init__文件

      在__init__文件中, __name__是当前包名, __package__为当前包名

    对 * 导入限制

      1. 放在模块的头顶部,限定导入的类 __all__ = ["className", ...] 

      2. 放在 __init__文件中,限定导入的模块 __all__ = ["modulName", ...]

    导入  import from .   分为导入本包和其他包

      1.  导入其他包

        import pkgName

      2. 导入当前包下目录

        from . import modulName

      3. 导入其他包模块

        from pkgName import modulName

      4. 从当前包导入类

        from .modulName import className

      5. 从其他包导入类

        from pkgName.modulName import className

      6. 导入包是不重复,导入一个包Python会执行一次包中代码

      7. 避免循环和环路导入

    相对导入     包下文件可以通过相对路径导入, 依据包下模块中的__name__定位

    绝对导入     从顶级包开始,一直通过 . 访问下去,必须知道顶级包位置

    项目入口文件  main.py

      1. 整个项目的起始执行文件,整个程序逻辑运行起始,只能通过绝对导入模块

      2. 会强行把 main文件中的 __name__ 改为 "__main__", __package__ 置为 None, __main__模块是不存在的

    把模块当作main文件运行     python -m pkgName.modulName

      -m 参数后面接收模块的命令空间

    获取模块内置变量     dir()

      1. 当前模块命名空间    __name__

      2. 当前模块所在包名    __package__

      3. 获取模块注释      __doc__    注释写在模块头部,用于自动生成文档

      4. 获取当前模块绝对路径  __file__

      5. 系统自定义变量,和普通变量无区别,为了区分自定义变量和Python内置变量    __variable__

    当前目录    .

    上级目录    ..

  • 相关阅读:
    [error]The command could not be located because '/usr/bin' is not included
    hadoop伪分布式
    ssh免密码登录
    移动端中的陀螺仪,摇一摇
    利用百度地图做的定位,获取位置和经纬度
    租房短租发布场地,工作中遇到的复杂日期插件功能
    深入理解定时器系列第三篇——定时器应用(时钟、倒计时、秒表和闹钟)
    BOM之navigator对象和用户代理检测
    jq css3实现跑马灯+大转盘
    Vue小事例
  • 原文地址:https://www.cnblogs.com/2bjiujiu/p/9079148.html
Copyright © 2020-2023  润新知