包的补充

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相关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值