如何从conftest.py访问main.py中Test类方法内的变量?
问题解决方法
先修正代码里的语法错误,再调整变量访问逻辑,具体步骤如下:
第一步:修复main.py的问题
你的main.py存在三处问题:字符串格式化语法错误、缺少必要导入、局部变量无法被外部访问。修正后的代码:
import os from datetime import datetime class Test(): def test_setup(self): # 修复字符串格式化语法错误,移除多余的闭合},添加正确占位符 new_dir = r"D:\Selenium\Insights\{timestamp}".format(timestamp=datetime.now().strftime('%Y-%m-%d_%H-%M-%S')) if not os.path.exists(new_dir): os.makedirs(new_dir) # 将局部变量改为实例属性,允许外部通过实例访问 self.saved_dir = new_dir
第二步:调整conftest.py的调用逻辑
test_setup是实例方法,必须先创建Test类的实例才能调用,且要通过实例访问saved_dir属性,修正后的代码:
from main import Test def newfunc(): # 创建Test类的实例 test_instance = Test() # 调用实例的test_setup方法 test_instance.test_setup() # 访问实例的saved_dir属性 print(test_instance.saved_dir)
关键说明
- 带
self参数的实例方法,不能直接通过类调用,必须先创建类的实例 - 方法内部的局部变量无法被外部访问,需赋值为
self.xxx变成实例属性,才能通过实例访问 - 字符串格式化时,占位符格式为
{变量名},你之前多写了一个闭合的}`,导致语法错误
内容的提问来源于stack exchange,提问作者Libin Thomas
相关产品推荐
相关产品推荐

