zoukankan      html  css  js  c++  java
  • 模块与包 项目结构

    #模块和包
    #import
    #在import的过程发生了那些事情
    #import 一个模块相当执行了这个模块
    # 一个模块不能被重复导入
    #模块和文件之间的内存空间是隔离的
    #模块的名字必须要符合变量命名规范
    #1.寻找模块
    #2.如果找到了,就开辟一个空间,执行这个模块
    #3.把这个模块中用到的名字都收录到新开辟的空间中
    #4.创建一个变量来引用这个模块的空间

    #被导入的模块和本文件之间命名空间的关系
    #import 多个模块
    #注意:
    #import os
    #import time
    #遵循顺序 内置 第三方 自定义
    #pep8规范

    #给导入的模块起别名
    #格式 import 模块 as 别名
    #注意 有了别名之后,就不能直接用模块.属性而需要用别名.属性
    #模块搜索路径
    #正常的sys.path 中 不包括内置和第三方模块
    # import sys
    # print(sys.path) #只看列表中的第一个就是当前文件的路径

    #一个模块是否被导入就看这个模块所在的目录在不在这个sys.modules 中
    # import sys
    # import my_module #自定义的一个模块
    # print(sys.modules) #字典中含有my_module 的路径

    #模块和脚本
    #俩种运行一个py文件的方法
    #1直接运行 或者 在cmd 中运行 和在pycharm 中run执行,都是脚本
    #2被import导入的 就是模块

    #模块 from 模块 import 属性
    #例 from my_module import name
    # print(name)
    #2 不推荐使用 了解
    #from my_module inport * #*号表示模块中的所有属性。
    # print(name) #可以直接使用模块中的属性
    # read()

    #在from import的过程发生的事
    #1 要找到 这个模块
    #开空间,执行这个模块文件
    #将所以模块文件的属性都存储在模块所属空间中
    #建立一个引用属性,



    #补充内容:
    #1.pyc文件,pyi文件
    #pyc 只能提高程序的启动效率并不能提高程序的执行效率

    #2.模块的导入和修改
    #导入之后,运行属性,然后再改模块中的属性,再运行属性,属性不会变
    # import time
    # import my_module #导入模块
    # print(my_module.name) #alex
    # time.sleep(10) #暂停十秒,修改模块中属性
    # import my_module
    # print(my_module.name) #alex #不变

    #如果要修改的话 导入一个新的模块 from importlib import reload
    # from importlib import reload
    # import time
    # import my_module #导入模块
    # print(my_module.name) #alex
    # time.sleep(10) #暂停十秒,修改模块中属性
    # reload(my_module)
    # print(my_module.name) #tiantian #属性以变



    #3.模块的循环引用
    #不能循环

    #4.dir(模块名)
    #可以获取这个模块的名字

    #包
    #什么是包 package
    #含有一个__init__.py的文件夹就是一个包
    #包含中通常含有一些py文件
    # #从包导入模块 ****
    # import glance2.api.policy as policy #as 别名
    # policy.get()

    #导入包
    #绝对导入
    #导入包的过程中的发生了什么事
    #相当于执行了包中的__init__.py文件
    #sys.path 中的内容,永远是当前你执行的文件

    #相对导入 运用了相对导入的文件不能被直接执行
    # '.'表示当前目录
    # '..'表示上一级目录




    项目结构

     bin 包中start.py中模板

    import os
    import sys
    
    base_path =os.path.dirname(os.path.dirname(os.path.abspath(__file__)))      #动态绝对路径

              #os.path.abspath(__file__) 绝对路径 os.path.dirname() conf文件那一层 再来一层就是项目soft那一层 参照上图
    sys.path.append(base_path)
    from core import core if __name__ == '__main__': core.main()
    
    
  • 相关阅读:
    学习路线
    环境搭建时用到的文档
    商城技术重点分析
    svn 忽略文件
    实用的css3 学习笔记
    转载 《AngularJS》5个实例详解Directive(指令)机制
    php 单例设计模式 example
    html5 图片转base64预览显示
    curl返回常见错误码
    jquery的end(),addBack()方法example
  • 原文地址:https://www.cnblogs.com/yuncong/p/9606953.html
Copyright © 2011-2022 走看看