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

2.常见目录结构

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.目录结构
 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.绝对导入

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.相对导入
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 之后直接调用模块中的方法
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

python包的补充的更多相关文章

  1. 离线pip下载Python包

    离线pip下载Python包   这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧.      # 生产环境  windows xp# python 2 ...

  2. python 包和模块

    一. 模块 使用内置函数vars()可以查看当前环境下有哪些对象(变量.函数.类) from 模块 import *: 不会导入以下划线开头的对象 只会导入__all__中定义了的对象(__all__ ...

  3. python包管理工具他们之间的关系

    python包管理工具之间的关系 现在的python包管理工具有很多,非常混乱,必须理清他们之间的关系才能更好的使用python构建强大的包关系系统工具. 首先:python官方推荐的第三方库是PyP ...

  4. 【转】linux和windows下安装python集成开发环境及其python包

    本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...

  5. RobotFramework中加载自定义python包中的library(一个py文件中有多个类)

    结构如下: appsdk\ appsdk.py(这里面有多个类,包括appsdk,appsdksync等类) __init__.py ... ① 有个appsdk的文件夹(符合python包的定义) ...

  6. centos 7 下安装numpy、scipy等python包

    本文适用于刚入门的小白,欢迎大牛们批评指正. 因为要开始数据分析,而python又不像R和matlab那么简洁.需要安装的包很多~ 网上找了好多牛人博客,想在centos7下安装numpy,scipy ...

  7. python 包管理工具

    python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...

  8. Python 包管理工具解惑

    Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...

  9. Python 包的相对导入讲解

    [Python 包的相对导入讲解] 参考:http://www.dai3.com/python-import.html

随机推荐

  1. HTTP 几种常用的认证机制

    HTTP Basic Auth HTTP Basic Auth简单点说明就是每次请求API时都提供用户的username和password,简言之,Basic Auth是配合RESTful API 使 ...

  2. TensorFlow——CNN卷积神经网络处理Mnist数据集

    CNN卷积神经网络处理Mnist数据集 CNN模型结构: 输入层:Mnist数据集(28*28) 第一层卷积:感受视野5*5,步长为1,卷积核:32个 第一层池化:池化视野2*2,步长为2 第二层卷积 ...

  3. Linux性能优化从入门到实战:04 CPU篇:CPU使用率

      CPU使用率是单位时间内CPU使用情况的统计,以百分比方式展示. $ top top - 11:46:45 up 7 days, 11:52, 1 user, load average: 0.00 ...

  4. python基础--5字典

    #字典#dict#基本结构info={ "k1":'v1' #键值对 ,"k2":"v2"} #字典的value可以是任何值# info={ ...

  5. ls 显示目录下的内容和文件相关属性信息

    1.命令功能 ls命令是“list directory contents”,显示当前目录下的内容和文件属性. 2.语法格式 ls  [option]  file ls  选项  文件名 3.选项说明 ...

  6. 随笔3 HashMap<K,V>

    equals.hashcode和==的区别 在介绍HashMap之前,我想先阐述一下我对这三者的理解,equals这个方法呢,就是在判断是否为同一对象(注意,这里的同一对象和相同的内存地址是不同的), ...

  7. 触发写Redo&nbsp;Log的条件

    参见:http://www.ixora.com.au/notes/redo_write_triggers.htm http://www.eygle.com/archives/2005/02/redoa ...

  8. MainRun

    package Testlink; import java.io.IOException; public class MainRun { public static void main(String[ ...

  9. PHP 判断是否为手机端访问

    /* * 判断是否为手机端 */function check_wap(){ // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_W ...

  10. spring mvc中的@Entity是什么意思?

    @Entitypublic Class JavaBean{}标注该类为实体类.