在python / Selenium中,我有一个Web自动化脚本,该脚本使用5个独立的函数来完成任务。函数调用链是线性的,因为每个函数依赖于最后一个执行。
我遇到的问题是,我不想全局声明要在最终函数“ checkout”中使用的所有变量。 我无法输入任何函数中的变量,因为这会延迟时间紧迫的函数。
但是,我可以在计时器结束和程序开始之前进行操作。这些变量当前都在执行此操作的主函数本地。为此,我必须将所有10个变量传递给每个函数,直到最后一个。 有什么方法可以避免这种情况,即使变量没有在前一个函数中全局或局部声明,也可以将它们“传递”到最终函数中?
答案 0 :(得分:1)
您可以将所有这些函数作为类中的方法来保存,这些类以如下状态保存这些变量:
class MyRunner():
def __init__(self, val1, val2, val3):
self.val1 = val1
self.val2 = val2
self.val3 = val3
def method1(self):
print("Call of method 1", self.val1, self.val2, self.val3)
def method2(self):
print("Call of method 2", self.val1, self.val2, self.val3)
def method3(self):
print("Call of method 3", self.val1, self.val2, self.val3)
runner = MyRunner(10, 20, 30)
runner.method1()
runner.method2()
runner.method3()