zoukankan      html  css  js  c++  java
  • 包的导入

    一、什么是包?   package

      1、含有一个__init__.py的文件就是一个包

      2、包中通常含有一些py文件

    二、从包中导入模块 ****

      方法一: import

    import glance2.api.policy
    glance2.api.policy.get()
    import glance2.api.policy as policy   # 以文件名取别名
    policy.get()

    方法二:from import

    from glance2.api import policy
    policy.get()
    
    
    
    from glance2.api.policy import get
    get()

    三、包的导入

    生成文件夹

    import os
    os.makedirs('glance/api')
    os.makedirs('glance/cmd')
    os.makedirs('glance/db')
    l = []
    l.append(open('glance/__init__.py','w'))
    l.append(open('glance/api/__init__.py','w'))
    l.append(open('glance/api/policy.py','w'))
    l.append(open('glance/api/versions.py','w'))
    l.append(open('glance/cmd/__init__.py','w'))
    l.append(open('glance/cmd/manage.py','w'))
    l.append(open('glance/db/models.py','w'))
    map(lambda f:f.close() ,l)

    生成这个包之后,如何把这个包导入到文件中呢?

    1、在这个包的同级目录中的__init__.py中去配置    # from glance2 import api

    2、在这个包中api的__init__.py中去配置     # from glance2.api import policy

    3、再这个policy 中写入 get()函数

    4、在这个需要导入包的文件中执行这个包

    3.2  相对导入:     运用了相对导入的文件不能被直接执行 ,缺点就是不能在当前文档中执行,只能作为一个模块被调用执行

    # ‘.’表示当前目录 

    from .import api

    # ‘..’表示上一级目录

    from ..cmd import manage
    
    def get():
        print('777')
    manage.main()

    * 与 __all__

    from .api import *   # 上级目录的__init__
    
    __all__ = ['policy','versions']  # 在api 的__init__里面写

                                                                                                                                                       

  • 相关阅读:
    【BZOJ】1006: [HNOI2008]神奇的国度 弦图消除完美序列问题
    【BZOJ】1015: [JSOI2008]星球大战starwar
    poj 2001 Shortest Prefixes trie入门
    hdu 1251 统计难题 trie入门
    hdu 4570 Multi-bit Trie 区间DP入门
    Lucas定理的理解与应用
    hdu 3944 DP? 组合数取模(Lucas定理+预处理+帕斯卡公式优化)
    组合数模板
    如何使用弹窗来让用户订阅电子杂志
    分享一则电子邮件营销案例
  • 原文地址:https://www.cnblogs.com/youhongliang/p/9609376.html
Copyright © 2011-2022 走看看