Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将子类中定义的变量用于基类中的方法_Python_Pytest - Fatal编程技术网

Python 将子类中定义的变量用于基类中的方法

Python 将子类中定义的变量用于基类中的方法,python,pytest,Python,Pytest,我有一个基类和两个不同的子类(它们在3个不同的模块中)。 在基类中,我有用于子类的测试方法。 我希望基类中的测试方法使用子类中定义的变量。但是当我在子类中运行测试方法时,我无法访问子类中的变量。 有人能帮我解决这个问题吗 注意:我不能使用\uuuuu init\uuuu构造函数(不能收集测试类) 与uuu init_uuuuuuu构造函数有关的错误:未找到任何测试 ==================================================================

我有一个基类和两个不同的子类(它们在3个不同的模块中)。
在基类中,我有用于子类的测试方法。
我希望基类中的测试方法使用子类中定义的变量。但是当我在子类中运行测试方法时,我无法访问子类中的变量。
有人能帮我解决这个问题吗

注意:我不能使用
\uuuuu init\uuuu
构造函数(不能收集测试类)

与uuu init_uuuuuuu构造函数有关的错误:未找到任何测试
==========================================================================================================src/test\u icd\u operation.py::TestICDFields无法收集测试类
“TestICDFields”,因为它有一个_uinit__;构造函数
--文件:http://doc.pytest.org/en/latest/warnings.html
==============================================16.80秒内出现1次警告=========================
进程已完成,退出代码为0
代码

class BaseClassExample:
  table_name = None

  def test_field_for_both_devices(self):
    firstname = get_field(table_name)



class SubClass1(BaseClassExample):
  table_name = 'Pacer'

  def test_field1():
    field1 = get_field(table_name)



class SubClass2(BaseClassExample):
  table_name = 'ICD'

  def test_field2(self):
    field2 = get_field(table_name)

因此,当我在类
子类1
中运行测试时,我希望
BaseClassExample
上的变量
table\u name
从子类
子类1
中的变量中获取值
Pacer
使用
self.table\u name

class BaseClass示例:
表名称=无
两个设备(自身)的def测试字段:
firstname=get\u字段(self.table\u名称)
类子类1(BaseClassExample):
表_name='Pacer'
def测试_字段1():
field1=获取字段(self.table\u名称)
类子类2(BaseClassExample):
表_name='ICD'
def测试现场2(自身):
field2=获取字段(self.table\u名称)

说明:Python有几个方面:全局、局部、类和实例。您无法访问
表\u name
,因为Python在本地和全局名称空间中查找它,但失败了。您可以访问
self.table\u name
,因为它是实例名称空间,如果名称在实例(在
self
中)中没有阴影,它也可以访问类名称空间。

您可以添加一些代码吗?可以显示错误消息吗?基类不能使用子类中定义的内容。也许你想在基类中定义东西,然后在子类中重写它?无论如何,显示所有代码肯定会有助于解决这个问题。我添加了一个示例@gwendalgreelier你能显示这个示例吗请@alfe