簡體   English   中英

這種變量踩踏錯誤有名稱嗎?

[英]Is there a name for this kind of variable stomping bug?

我最近解決了一個錯誤,其中(在 Python 代碼中)一個字典變量在循環外初始化,然后修改並分配給循環內的另一個字典。 期望是變量的深層副本被分配給字典,但實際上它是一遍又一遍地傳入的同一個變量。 最終結果是字典包含一堆重復的字典,而不是循環的每次迭代的唯一字典。

像這樣的東西:

d = []
a = {"key": "value"}
for x in range(5):
    a["key2"] = "value" + str(x)
    d.append({"results": a})

正確的行為更像是這樣

d = []
for x in range(5):
    a = {"key": "value", "key2": "value" + str(x)}
    d.append({"results": a})

打算為此修復寫一條變更日志消息,我想知道這種錯誤是否有合適的術語? 我能想到的最好的方法是“可變踩踏”,但我相信有更多的描述性。

我會用一條線

在每次迭代時創建一個新字典以防止模板發生變異

這清楚地表明了最初的問題是什么以及它是如何解決的——至於命名,這個詞正在變異

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM