Python Flask 6.0.2 相对路径

来源:互联网 发布:微电影制作软件 编辑:程序博客网 时间:2024/06/09 18:24

欢迎访问地平线上的一匹狼-Python Flask 6.0.2

在Python引入包时,我们会发现有这样的一种引用方法:
from . import XX,以及from .. import xx.
这就是相对路径引用.
其中有几点需要注意.

1.在编译时,存在这种相对引用的.py是无法被单独编译的,只有在编译最高级的.py时,才不会报编译级别错误.

2.存在跨文件夹引用时,需要在相应文件夹内创建一个__init__.py才可以引用成功,(就算该文件是空的也没关系)因为加了这个文件,编译器才会把该文件夹看做一个package,即可以用from 文件夹名 import 类/文件等方式进行引用.

3.在主程序运行后,调用每个包时会先调用该包的__init__.py文件,然后再调用对应import的内容.

这里我结合上一节的Factory method编写了一个简单的测试程序:

具体目录结构如下:--工厂函数/    --tests/        --abc/            --__init__.py            --qb.py        --__init__.py        --test2.py    --test.py(主程)

项目地址: Click Here: 工厂函数" target="_blank">Click Here: 工厂函数

运行test.py,Result:

test.py:

from tests.abc.qb import crete_factory_methodfactory_test = crete_factory_method('这是第一个单元测试')factory_test2 = crete_factory_method('这是第二个单元测试')factory_test.print_str()factory_test2.print_str()

tests/__init__.py:

print("I'm Tom's __init__!")

tests/test2.py:

class mq(object):    def __init__(self,string_c):        self.config_str=string_c    def print_str(self):        print(self.config_str)

tests/abc/__init__.py:

print('由此可知,如果直接编译qb.py会报错,因为等级?错误,但是直接编译最顶层的test.py就不会报错了.')

tests/abc/qb.py:

from ..test2 import mqdef crete_factory_method(config_str):    tp=mq(config_str)    return tp
原创粉丝点击