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. appscan 历史版本下载

    https://www.cnblogs.com/hua198/p/11120916.html

  2. django学习笔记(二)

    上节内容回顾: 1.Django请求生命周期 -> URL对应关系(匹配) -> 视图函数 -> 返回用户字符串 -> URL对应关系(匹配) -> 视图函数 -> ...

  3. Ionic -v1初始项目结构

    界面  

  4. 剑指offer--字符串

    C/C++中每个字符串都以字符'\0'作为结尾,这样我们就可以很方便的找到字符串最后的尾部.由于这个特点,每个字符串中都有一个额外字符的开销,稍不留神就会造成字符串的越界. 为了节省内存,C/C++把 ...

  5. Sublime-emmet插件的使用

    emmet是使用Sublime编写html代码时最好用的一个插件,下面简单介绍一下emmet插件的安装和使用 安装 第一步:打开sublime,首先输入command + shift + p,然后输入 ...

  6. vue动态生成表单

    vue动态生成表单 一.下拉框 <!DOCTYPE html> <html> <head> <meta charset="utf-8" / ...

  7. div+css做出带三角的弹出框 和箭头

    一.三角形 https://blog.csdn.net/Szu_AKer/article/details/51755821 notice:三角的那部分可以用图片作为背景,但是容易出现杂边.所以利用cs ...

  8. bat 获取系统日期,时间,并去掉时间小时前面的空格和时间后面的空格

    @echo off rem BAT获取系统日期,时间,并去掉时间小时前面的空格和时间后面的空格 echo *** %DATE% echo *** %TIME% set THISDATE=%DATE:~ ...

  9. configerparser模块

    '''[mysqld]charater-server-set='utf8'default-engine='innodb'skip-grant-table=Trueport=3306 [client]u ...

  10. go mac 交叉编译 linux

    CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-w' -o server ./server.go