Python Flask 6.0.2 相对路径

WEB前端 waitig 910℃ 百度已收录 0评论

欢迎访问地平线上的一匹狼-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_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

本文由【waitig】发表在等英博客
本文固定链接:Python Flask 6.0.2 相对路径
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)