我的需求就是在两个py文件中,在一个py文件利用反射原理调用取另外一个py文件的全局变量。
文件结构:
│──TestCases
│ ├── test_login.py
│ └── test_login1.py
第一步:test_login.py文件中把需要的参数 return -->ABC,CGD过来,结果才能对应的改变。
class PYtest:
ABC = None
CGD = None
def init(self):
global ABC,CGD
ABC = 9
CGD = 10
return 0,ABC,CGD
if __name__ == '__main__':
res,ABC,CGD = PYtest().init()
print(ABC,CGD)
运行结果:
9 10
第二步:在test_login1.py运行,能够获取到
import importlib
module_name = "TestCases." + "test_login" # 文件所在的目录
class_name = "PYtest" # test_login的类名
module = importlib.import_module(module_name) # 加载
aclass = getattr(module, class_name) # 反射获取类对象本身
handle_behavior = getattr(aclass, "init") # 反射获取类对象下面的init方法
res,ABC,CGD = handle_behavior(aclass()) # 调用init方法
print(ABC,CGD)
运行结果:
9 10