python全栈开发补充包的补充

Posted 呆萌小河马的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python全栈开发补充包的补充相关的知识,希望对你有一定的参考价值。

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

 

2.常见目录结构

# 创建目录代码
import os
os.makedirs(\'glance/api\')
os.makedirs(\'glance/cmd\')
os.makedirs(\'glance/db\')
l = []
l.append(open(\'glance/__init__.py\',\'w\'))
l.append(open(\'glance/api/__init__.py\',\'w\'))
l.append(open(\'glance/api/policy.py\',\'w\'))
l.append(open(\'glance/api/versions.py\',\'w\'))
l.append(open(\'glance/cmd/__init__.py\',\'w\'))
l.append(open(\'glance/cmd/manage.py\',\'w\'))
l.append(open(\'glance/db/models.py\',\'w\'))
map(lambda f:f.close() ,l)

 

3.目录结构

glance/                   #Top-level package

├── __init__.py      #Initialize the glance package

├── api                  #Subpackage for api

│   ├── __init__.py

│   ├── policy.py

│   └── versions.py

├── cmd                #Subpackage for cmd

│   ├── __init__.py

│   └── manage.py

└── db                  #Subpackage for db

    ├── __init__.py

    └── models.py

  

4.文件内容

#文件内容

#policy.py
def get():
    print(\'from policy.py\')

#versions.py
def create_resource(conf):
    print(\'from version.py: \',conf)

#manage.py
def main():
    print(\'from manage.py\')

#models.py
def register_models(engine):
    print(\'from models.py: \',engine)

 

5.软件开发规范

 

6.绝对导入

glance/                   

├── __init__.py      from glance import api
                             from glance import cmd
                             from glance import db

├── api                  

│   ├── __init__.py  from glance.api import policy
                              from glance.api import versions

│   ├── policy.py

│   └── versions.py

├── cmd                 from glance.cmd import manage

│   ├── __init__.py

│   └── manage.py

└── db                   from glance.db import models

    ├── __init__.py

    └── models.py

  

7.相对导入

glance/                   

├── __init__.py      from . import api  #.表示当前目录
                     from . import cmd
                     from . import db

├── api                  

│   ├── __init__.py  from . import policy
                     from . import versions

│   ├── policy.py

│   └── versions.py

├── cmd              from . import manage

│   ├── __init__.py

│   └── manage.py    from ..api import policy   
                     #..表示上一级目录,想再manage中使用policy中的方法就需要回到上一级glance目录往下找api包,从api导入policy

└── db               from . import models

    ├── __init__.py

    └── models.py

 

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

glance/                   

├── __init__.py     from .api import *
                    from .cmd import *
                    from .db import *    
├── api                  

│   ├── __init__.py   __all__ = [\'policy\',\'versions\'] 

│   ├── policy.py

│   └── versions.py

├── cmd               __all__ = [\'manage\']    

│   ├── __init__.py

│   └── manage.py    

└── db                __all__ = [\'models\']              

    ├── __init__.py

    └── models.py


import glance
policy.get()

import glance

 

 

 

 

 

 

以上是关于python全栈开发补充包的补充的主要内容,如果未能解决你的问题,请参考以下文章

Python全栈开发补充:线程池

python全栈开发基础补充metaclass(元类)

巨蟒python全栈开发-第7天 基本数据类型补充&深浅拷贝

python全栈开发补充复习os模块常用的一些操作

python全栈开发基础补充解决tcp粘包

python全栈开发补充map函数和reduce函数的区别