雖然 Python 的作用域規則已被普遍理解,但維護控制變數的設計選擇退出循環後的範圍對某些人來說仍然是個謎。考慮以下程式碼:
for foo in xrange(10): bar = 2 print(foo, bar)
此列印 (9, 2),這可能看起來違反直覺,因為 'foo' 控制循環,而 'bar' 是在其中定義的。可以理解為什麼“bar”可以在循環之外訪問,但是“foo”的持久性引起了擔憂。
可能的解釋在於文法簡單性。在循環內分配給變數不需要消除作用域歧義,因為分配意味著作用域。在特定範圍內宣告變數並不是 Python 中的做法。 “global”關鍵字的存在是為了明確地表示全域範圍分配。
這種設計並沒有顯著阻礙採用,而且使用者已經接受了在循環之外存取控制和定義變數的能力。它避免了範圍界定和消歧的複雜性,簡化了程式碼的可讀性和開發。
以上是為什麼 Python 的「for」循環控制變數在循環完成後仍保留在作用域內?的詳細內容。更多資訊請關注PHP中文網其他相關文章!