您的位置:首页 > 编程语言 > Python开发

Python Flask 6.0.2 相对路径

2017-10-15 12:40 489 查看
欢迎访问地平线上的一匹狼-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: 工厂函数


运行
test.py
,
Result:






test.py
:

from tests.abc.qb import crete_factory_method

factory_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 mq

def crete_factory_method(config_str):
tp=mq(config_str)
return tp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python