包的补充

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

posted @   Py猫的故事  阅读(144)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
返回顶部
点击右上角即可分享
微信分享提示