在 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()
添加回答
舉報
0/150
提交
取消