第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Python中安全地刪除多個已定義和未定義的變量?

如何在Python中安全地刪除多個已定義和未定義的變量?

冉冉說 2024-01-27 14:56:28
我目前正在使用jupyter筆記本,我想刪除僅在單元格內(nèi)使用的變量,這樣我就不會意外地在其他單元格中濫用這些變量。例如,我想刪除以下代碼中的變量myvar和循環(huán)變量:istart = 1stop = 2for i in range(start, stop):    passmyvar = "A"# other statements# ...del i, myvar # Runs ok, and variables i and myvar are deleted and I won't accidentally use i or myvar in another jupyter notebook cell這工作得很好,但在某些情況下,某些變量實(shí)際上沒有定義。在下面的示例中,這會引發(fā)錯誤,因?yàn)閕未定義,因?yàn)檠h(huán)從未運(yùn)行。定義的變量myvar不會被刪除。start = 1stop = 1 # Now we have stop equal to 1for i in range(start, stop):    passmyvar = "A"# other statements# ...del i, myvar # NameError, since i is not defined, and myvar is not deleted我已經(jīng)使用contextlib或try- except語句來避免錯誤,但仍然myvar沒有被刪除。import contextlibstart = 1stop = 1for i in range(start, stop):    passmyvar = "A"# other statements# ...with contextlib.suppress(NameError):    del i, myvar # Error suppressed, but myvar is not deleted唯一的解決方法是為每個要刪除的變量包裝 del 語句。import contextlibstart = 1stop = 1for i in range(start, stop):    passmyvar = "A"# other statements# ...with contextlib.suppress(NameError):     del iwith contextlib.suppress(NameError):     del myvar# ...# It works but codes get messy if I need to delete many variables然而,這會使代碼變得混亂,尤其是當(dāng)您有很多變量需要刪除時(shí)(如果有 n 個變量則需要刪除 n 行)。有沒有辦法用一兩行代碼安全地刪除所有已定義和未定義的變量,并減少混亂的代碼?
查看完整描述

3 回答

?
慕妹3146593

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個贊

您可以使用“del”后面的逗號分隔列表,del var1, var2, var3, 來刪除選定的變量。



查看完整回答
反對 回復(fù) 2024-01-27
?
MMTTMM

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個贊

安全地做一件事del x

globals().pop('x', None);

有很多方法可以做到這一點(diǎn),但它們需要超過 1 行代碼,我想這不是您想要的。請注意;最后,這可以防止 Jupiter 打印該變量。


查看完整回答
反對 回復(fù) 2024-01-27
?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個贊

您可以通過檢查變量是否在globals()or中來檢查變量是否確實(shí)存在,而不是抑制錯誤locals()。不過,您必須操作字符串名稱并形成一個del語句來使用 執(zhí)行它exec。


to_delete = ['i', 'myvar']

for _var in to_delete:

    if _var in locals() or _var in globals():

        exec(f'del {_var}')


查看完整回答
反對 回復(fù) 2024-01-27
  • 3 回答
  • 0 關(guān)注
  • 237 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號