构建Python OOP代码和模块

2024-06-26 10:36:31 发布

您现在位置:Python中文网/ 问答频道 /正文

packageName\
    __init__.py
    src\
        __init__.py
        someFile.py
        classes\
            __init__.py
            engine1.py
            engine2.py
            engine.py
    tests\
        __init__.py
        myTests.py
    temp\

我正在用Python开发OOP,我有几个问题。在

{1>我不明白这个模块的好处是什么。在

如果myTests.py需要从packageName/src/classes文件夹导入类,我该如何运行它?在

^{pr2}$

上面的电话是我想我应该如何运行我的测试。如果是这样的结构,如何导入类?在

from ..src.classes.engine1 import *

Tags: 模块pysrc文件夹initteststempengine
1条回答
网友
1楼 · 发布于 2024-06-26 10:36:31

正如@Mike提到的,搭车指南包装将是一个很好的起点。在

现在,就您的测试而言:由于各种原因,您不能只运行python packageName/tests/myTests.py(具体地说,Python会对包的布局感到困惑——当您使用python foo.py运行一个文件时,它应该在包之外,因此from ..src …行将失败,并返回{})。在

相反,您需要从包之外的开始测试……要么使用nose或{a2}这样的测试运行器,要么在顶层目录(即packageName/上面)编写一个简单的脚本:

$ ls
packageName/ run_tests
$ cat run_tests.py
from packageName.tests.myTests import main
main()

{{cd7>

然而,使用测试运行程序要简单得多。如果您有written your tests correctly,则可以使用以下命令运行它们:

^{pr2}$

相关问题 更多 >