是否可以将多个变量传递给在调用它的上一个函数(或全局声明)中未在本地声明的函数?

时间:2019-04-04 22:40:57

标签: python function selenium

在python / Selenium中,我有一个Web自动化脚本,该脚本使用5个独立的函数来完成任务。函数调用链是线性的,因为每个函数依赖于最后一个执行。

我遇到的问题是,我不想全局声明要在最终函数“ checkout”中使用的所有变量。 我无法输入任何函数中的变量,因为这会延迟时间紧迫的函数。

但是,我可以在计时器结束和程序开始之前进行操作。这些变量当前都在执行此操作的主函数本地。为此,我必须将所有10个变量传递给每个函数,直到最后一个。 有什么方法可以避免这种情况,即使变量没有在前一个函数中全局或局部声明,也可以将它们“传递”到最终函数中?

1 个答案:

答案 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()