Python从类中定义的不同文件调用方法

时间:2018-03-06 00:31:34

标签: python python-2.7 unit-testing nose

我正在尝试编写单元测试。我的单元测试文件是test_file。我的主要代码在一个文件(main_file.py)中,它有一个类定义和几个方法。 我的所有文件都在同一个目录中,所以我的树结构看起来像:



├── main_file.py
├── __init__.py
├── test_file.py




在我的main_file中,我有一个类名my_class,并且有方法send_request。

在我的测试文件中,我尝试导入要使用的方法: from main_file import send_request

当我运行我的单元测试(python test_file.py)或甚至使用nosetests时它会一直抛出错误: ImportError:没有名为main_file的模块

我的 init .py只是空的。

2 个答案:

答案 0 :(得分:1)

导入文件时,如果是在类中,则需要导入CLASS而不仅仅是方法。所以你需要这样做:

from main_file import my_class

而不是在类中导入函数。然后,当你打电话给班级时,你可以做一些事情,比如

my_class.send_request()

在新的.py

中调用该函数时

如您所知,您可以通过执行以下操作从main_file导入所有类和模块:

import main_file
from main_file import *

这也将为您提供所有类/功能,尽管这可能不是您想要的。

除此之外,我会确保它们全部在同一目录中,如果它仍然失败,我通常会将所有内容保存到我的“downloads”文件夹中。当所有其他方法都失败时,它就会起作用。

答案 1 :(得分:0)

你必须导入类才能使用方法

from main_file import my_class
from my_class import FUNCTION_NAME or from my_class import *