zoukankan      html  css  js  c++  java
  • python包的补充

    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
  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/intruder/p/10928811.html
Copyright © 2011-2022 走看看