Python Flask 6.0.2 相对路径
程序员文章站
2022-05-09 23:45:10
...
欢迎访问地平线上的一匹狼-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
:
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
上一篇: Zend Framework框架简单配置_PHP教程
下一篇: jsp/servlet中的相对路径