包的补充

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

2.常见目录结构

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

创建目录结构

3.目录结构

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

目录结构

4.文件内容

 文件内容

5.软件开发规范

6.绝对导入

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

绝对导入

7.相对导入

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

相对导入

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

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

Python之模块和包补充的更多相关文章

  1. Python之模块和包导入

    Python之模块和包导入 模块导入: 1.创建名称空间,用来存放模块XX.py中定义的名字 2.基于创建的名称空间来执行XX.py. 3.创建名字XX.py指向该名称空间,XX.名字的操作,都是以X ...

  2. 一文搞懂 Python 的模块和包,在实战中的最佳实践

    最近公司有个项目,我需要写个小爬虫,将爬取到的数据进行统计分析.首先确定用 Python 写,其次不想用 Scrapy,因为要爬取的数据量和频率都不高,没必要上爬虫框架.于是,就自己搭了一个项目,通过 ...

  3. Python 基金会 —— 模块和包简介

    一.模块(Module) 1.模块的作用      在交互模式下输出的变量和函数定义,一旦终端重新启动后,这些定义就都不存在了,为了持久保存这些变量.函数等的定义,Python中引入了模块(Modul ...

  4. day21 python之模块和包

    一 模块 1 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...

  5. 《Python》模块和包

    一.模块 1.什么是模块: 一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用Python编写的代码(. ...

  6. python 深入模块和包

    模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本 ...

  7. (Python )模块、包

    本节开始学习模块的相关知识,主要包括模块的编译,模块的搜索路径.包等知识 1.模块 如果我们直接在解释器中编写python,当我们关掉解释器后,再进去.我们之前编写的代码都丢失了.因此,我们需要将我们 ...

  8. python基础-------模块与包(一)

    模块与包 Python中的py文件我们拿来调用的为之模块:主要有内置模块(Python解释器自带),第三方模块(别的开发者开发的),自定义模块. 目前我们学习的是内置模块与第三方模块. 通过impor ...

  9. python中模块,包,库的概念

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

随机推荐

  1. 二十一:jinja2之模板继承

    模板继承可以把有共性的一些代码抽出来放到父模板中,其他需要次特性的文件继承模板即可 在jinja2中,使用extends来继承定义好的模板,使用{% block 位置名%} {% endblock % ...

  2. 【漏洞汇总】SQL 注入漏洞之 mysql

    日期:2019-07-23 19:55:59 更新:2019-08-02 10:40:37 作者:Bay0net 介绍:Mysql 注入笔记 0x01. 基本信息 1.1 基本术语 数据库: 数据库是 ...

  3. java游戏服务器--简单工厂模式

    先来学习下简单工厂模式! 我们知道在游戏里有很多的场景,例如:帮派场景,副本场景,野外场景... 现在我们有这样的需求: 1.我们需要进入帮派场景时---开始执行帮派任务. 2.我们需要进入副本场景时 ...

  4. 结构体封装高精度 大整数BigInt

    曾经很讨厌高精度,因为它很长,不好记,而且在不是很单纯的题目里面感觉很烦(一个数就是一个数组).在一道题目中出现的时候总是用一些奇技淫巧混过去(比如把两个$long$ $long$拼在一起). 现在. ...

  5. (4.34)sql server窗口函数

    关键词:sql server窗口函数,窗口函数,分析函数 如果分析函数不可用,那么可能是版本还不支持 Window Function 包含了 4 个大类.分别是: 1 - Rank Function ...

  6. linux项目运行环境搭建

    # 命令查看可修改分辨率  xrandr # 选择要修改的分辨率  xrandr -s 1360x768# 删除文件命令  rm -rf 文件名/ # XShell工具进行远程连接了 sudo apt ...

  7. [BZOJ2964]Boss单挑战

    题目描述 某\(RPG\)游戏中,最后一战是主角单挑\(Boss\),将其简化后如下: 主角的气血值上限为\(HP\),魔法值上限为\(MP\),愤怒值上限为\(SP\):\(Boss\)仅有气血值, ...

  8. MySQL数据库创建时间和更新时间错乱问题

    在数据中勾选create_time和update_time不为空可以解决更新记录时,create_time也被更新的毛病

  9. hadoop-mapreduce 详解

    mapreduce 完整流程解析 1. 在客户端启动一个 job: hadoop jar share/hadoop/tools/lib/hadoop-streaming-2.6.5.jar -file ...

  10. openlayers 添加标记点击弹窗 定位图标闪烁

    环境vue3.0 ,地图为公用组件,将添加图标标记的方法放在公共地图的初始化方法里 同一时间弹窗和定位标识都只有一个,因而我把弹窗和定位标记的dom预先写好放到了页面 //矢量标注样式设置函数,设置i ...