在 python/Selenium 中,我有一个 web 自动化脚本,它使用 5 个单独的函数来完成一个任务。函数调用链是线性的,因为每个调用都依赖于最后一个执行。
我遇到的问题是我不想全局声明要在最终函数“checkout”中使用的所有变量。我不能在任何函数中输入变量,因为它会延迟时间关键的函数。
然而,我可以在计时器结束和程序开始之前接受这些。这些变量当前都是执行此操作的主函数的本地变量。在这样做时,我必须通过每个函数传递所有 10 个变量,直到最后一个。有没有办法避免这种情况,而只是将变量“传递”给最终函数,尽管它们不是在前一个函数中全局或局部声明的?
您可以将所有函数作为方法放在一个类中,该类将这些变量保存为一种状态,例如:
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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句