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

问题描述 投票:1回答:2

我正在尝试编写单元测试。我的单元测试文件是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只是空的。

python python-2.7 unit-testing nose
2个回答
1
投票

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

from main_file import my_class

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

my_class.send_request()

当你在新的.py中调用该函数时

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

import main_file
from main_file import *

这将为您提供所有类/功能,虽然这可能不是您正在寻找的。

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


0
投票

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

from main_file import my_class
from my_class import FUNCTION_NAME or from my_class import *
© www.soinside.com 2019 - 2024. All rights reserved.