zoukankan      html  css  js  c++  java
  • 包的补充

    1.包A和包B下有同名模块也不会冲突,如A.a与B.a来自俩个命名空间

    2.常见目录结构

      1 import os
      2 os.makedirs('glance/api')
      3 os.makedirs('glance/cmd')
      4 os.makedirs('glance/db')
      5 l = []
      6 l.append(open('glance/__init__.py','w'))
      7 l.append(open('glance/api/__init__.py','w'))
      8 l.append(open('glance/api/policy.py','w'))
      9 l.append(open('glance/api/versions.py','w'))
     10 l.append(open('glance/cmd/__init__.py','w'))
     11 l.append(open('glance/cmd/manage.py','w'))
     12 l.append(open('glance/db/models.py','w'))
     13 map(lambda f:f.close() ,l)
     14 
     15 创建目录代码
     16 
     17 创建目录结构
    View Code

     

    3.目录结构

      1 glance/                   #Top-level package
      2 
      3 ├── __init__.py      #Initialize the glance package
      4 
      5 ├── api                  #Subpackage for api
      6 
      7 │   ├── __init__.py
      8 
      9 │   ├── policy.py
     10 
     11 │   └── versions.py
     12 
     13 ├── cmd                #Subpackage for cmd
     14 
     15 │   ├── __init__.py
     16 
     17 │   └── manage.py
     18 
     19 └── db                  #Subpackage for db
     20 
     21     ├── __init__.py
     22 
     23     └── models.py
     24 
     25 目录结构
     26 
     27 目录结构
    View Code

     

    4.文件内容

    5.软件开发规范

     

    6.绝对导入

      1 glance/
      2 
      3 ├── __init__.py      from glance import api
      4                              from glance import cmd
      5                              from glance import db
      6 
      7 ├── api
      8 
      9 │   ├── __init__.py  from glance.api import policy
     10                               from glance.api import versions
     11 
     12 │   ├── policy.py
     13 
     14 │   └── versions.py
     15 
     16 ├── cmd                 from glance.cmd import manage
     17 
     18 │   ├── __init__.py
     19 
     20 │   └── manage.py
     21 
     22 └── db                   from glance.db import models
     23 
     24     ├── __init__.py
     25 
     26     └── models.py
     27 
     28 绝对导入
     29 
     30 绝对导入
    View Code

    7.相对导入

      1 glance/
      2 
      3 ├── __init__.py      from . import api  #.表示当前目录
      4                      from . import cmd
      5                      from . import db
      6 
      7 ├── api
      8 
      9 │   ├── __init__.py  from . import policy
     10                      from . import versions
     11 
     12 │   ├── policy.py
     13 
     14 │   └── versions.py
     15 
     16 ├── cmd              from . import manage
     17 
     18 │   ├── __init__.py
     19 
     20 │   └── manage.py    from ..api import policy
     21                      #..表示上一级目录,想再manage中使用policy中的方法就需要回到上一级glance目录往下找api包,从api导入policy
     22 
     23 └── db               from . import models
     24 
     25     ├── __init__.py
     26 
     27     └── models.py
     28 
     29 相对导入
     30 
     31 相对导入
    View Code

     

    8.import  glance 之后直接调用模块中的方法

      1 glance/
      2 
      3 ├── __init__.py     from .api import *
      4                     from .cmd import *
      5                     from .db import *
      6 ├── api
      7 
      8 │   ├── __init__.py   __all__ = ['policy','versions']
      9 
     10 │   ├── policy.py
     11 
     12 │   └── versions.py
     13 
     14 ├── cmd               __all__ = ['manage']
     15 
     16 │   ├── __init__.py
     17 
     18 │   └── manage.py
     19 
     20 └── db                __all__ = ['models']
     21 
     22     ├── __init__.py
     23 
     24     └── models.py
     25 
     26 
     27 import glance
     28 policy.get()
     29 
     30 import glance
    View Code

     

     

     

    归类:Python相关

  • 相关阅读:
    相机篇
    ValueAnimator动画跳过中间过程的问题
    android 双向文字问题
    android让xml布局的底部跟随软键盘
    给fragment设置进入和退出动画
    android布局控件的LayoutParams
    注意点
    关于与条件判断中的顺序
    栈的反转
    从尾到头打印链表
  • 原文地址:https://www.cnblogs.com/lz1996/p/11566702.html
Copyright © 2011-2022 走看看