包的补充

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 创建目录代码

创建目录结构

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 目录结构

目录结构

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 绝对导入

绝对导入

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 相对导入

相对导入

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

最新文章

  1. ios - block循环引用Demo示例
  2. WeX5的简单介绍及UI的简单讲解
  3. jQuery不支持hashchange事件?
  4. 阿里云日志api创建logStore
  5. 【C#】线程之Task
  6. c# ToString() 用法
  7. linux下文件系统类型的学习
  8. oh-my-zsh配置 alias 指定指令别名
  9. python-整理--连接MSSQL
  10. 关于python 函数参数
  11. ASP.NET Core 运行原理剖析
  12. 输入一个A和B,,A<=B,A>=1,B<=pow(10,18)计算F=B!/A!结果的最后一位
  13. setTimeout与setInterval
  14. jq动画实现左右滑动
  15. python 三目运算符
  16. 【CF600E】 Lomsat gelral
  17. Docker容器学习与分享07
  18. Spark SQL inferSchema实现原理探微(Python)【转】
  19. JS-easyui 扩展easyui.datagrid,添加数据loading遮罩效果代码
  20. java应用简单递归

热门文章

  1. Summernote文本编辑器入门
  2. Chrome OS支持在窗口中运行Linux了!!!
  3. Tomcat-8.5.39性能监控及调优
  4. delphi application 和 form 主窗体 都是窗口
  5. Prometheus告警模型分析
  6. MyBatis框架原理4:插件
  7. MYSQL5.5 linux安装
  8. nginx配置laravel项目
  9. reactstrap,scrollbar组件
  10. 通过node指令自动创建一个package.json文件,并封装发布使用