AttributeError: 'TestFiles' object has no attribute '_reports'
AttributeError: 'TestFiles' object has no attribute '_reports'
我有两个 class 一个在我的 test.py 另一个在我的 main.py 文件分别命名为 TestFiles
和 Files
。我的 Files
class 包含两个方法,一个是私有的 _reports
,它在另一个名为 get_file_data
的方法中被调用但是当我 运行 我的 pytest 它给出了这个错误
AttributeError: 'TestFiles' object has no attribute '_reports'
这是我的TestFiles
class
import Files
class TestFiles:
def test_generate_output_files(self):
Files.get_file_data(self)
这是我的Files
class
class Files:
def _reports(self):
# does some work
pass
def get_file_data(self):
reports = self._reports()
您不是在创建 class - 您只是在调用方法。在这种情况下,self
参数将是 class 对象,您将无法访问 class 实例上的私有方法。
相反,您必须创建对象并调用该对象的方法:
from Files import Files
class TestFiles:
def test_generate_output_files(self):
files_object = Files()
files_object.get_file_data()
我有两个 class 一个在我的 test.py 另一个在我的 main.py 文件分别命名为 TestFiles
和 Files
。我的 Files
class 包含两个方法,一个是私有的 _reports
,它在另一个名为 get_file_data
的方法中被调用但是当我 运行 我的 pytest 它给出了这个错误
AttributeError: 'TestFiles' object has no attribute '_reports'
这是我的TestFiles
class
import Files
class TestFiles:
def test_generate_output_files(self):
Files.get_file_data(self)
这是我的Files
class
class Files:
def _reports(self):
# does some work
pass
def get_file_data(self):
reports = self._reports()
您不是在创建 class - 您只是在调用方法。在这种情况下,self
参数将是 class 对象,您将无法访问 class 实例上的私有方法。
相反,您必须创建对象并调用该对象的方法:
from Files import Files
class TestFiles:
def test_generate_output_files(self):
files_object = Files()
files_object.get_file_data()