为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

梦里花落0921 2021-12-29 18:25:09
在 python/Selenium 中,我有一个 web 自动化脚本,它使用 5 个单独的函数来完成一个任务。函数调用链是线性的,因为每个调用链都依赖于最后一个执行。我遇到的问题是我不想全局声明要在最终函数“checkout”中使用的所有变量。我不能在任何函数中输入变量,因为它会延迟时间关键的函数。然而,我可以在计时器结束和程序开始之前接受这些。这些变量当前都是执行此操作的主函数的本地变量。在这样做时,我必须通过每个函数传递所有 10 个变量,直到最后一个。有没有办法避免这种情况,而只是将变量“传递”给最终函数,尽管它们不是在前一个函数中全局或局部声明的?
查看完整描述

1 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您可以将所有函数作为方法放在一个类中,该类将这些变量保存为一种状态,例如:


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


查看完整回答
反对 回复 2021-12-29
  • 1 回答
  • 0 关注
  • 199 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号