python - 是否可以将多个变量传递给未在调用它的前一个函数中本地声明的函数(或全局声明)?
问题描述
在 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()
推荐阅读
- mysql - MySql - 使用选择更新
- javascript - discord js 机器人硬币系统| sqlite 错误
- php - Mysqli bind_param 用于更新查询中的列名
- rest-assured - 如何在使用放心发送 API 时更新请求
- javascript - Revert `display: none` on elements to original value
- sqlite - SQlite 将一个链接到另一个表的多个 ID
- c++ - C ++像从另一个线程一样锁定互斥锁?
- mysql - Mysql 存储函数 RETURN CAST(finNumber AS DECIMAL(12,2)) AS final 出现未知错误;
- list - 遍历列表中的元组并获取其值
- docker - docker compose 在负载容器上连接 ssh 隧道服务器