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

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

Python - 在 try/catch 之前定義變量還是讓它們冒泡?

Python - 在 try/catch 之前定義變量還是讓它們冒泡?

www說 2021-08-17 18:35:58
來自基于 Java 和 C 的語言,這在 Python 中看起來很奇怪。該x變量在 try 塊中定義,但在其外部使用。我知道 python 不限定 try 塊。try:    x = 5except Exception as e:    print(str(e))print(f"x = {x}")這是否被認為是 Python 中的好形式,還是更喜歡x = None預先設置?還是第三種選擇?為什么?
查看完整描述

2 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

在極少數(shù)情況下, atry: / except:確實是合適的做法。顯然,您給出的示例是抽象的,但在我看來,答案是“不”,引用可能未聲明的變量并不是一種好形式-如果由于某種原因在try:before 中遇到錯誤x = 5,那么您將得到嘗試時出錯print(f"x = {x}")

更重要的是,為什么哦為什么要在 try 塊中分配變量?我想說一個好的經驗法則是只包含在try您實際測試異常的那部分代碼中。

旁注:

  • 之前我曾被告知使用 a 是不好的形式except Exception,因為您真正應該做的是處理某個type錯誤,或者更好的particular錯誤(例如except IndexError,這將導致所有其他類型的錯誤都無法處理) ...try / except如果非專門使用,很容易引入難以診斷的錯誤。

  • 我很確定except:并且except Exception是等效的。


查看完整回答
反對 回復 2021-08-17
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

在這樣的情況下,如果在異常之后有一個共同的執(zhí)行路徑,我通常會做這樣的事情(就if/else變量賦值而言,它有一定的-ish接觸):


try:

    price = get_min_price(product)

except Exception as ex:

    print("could not get price for product {}: {}".format(product, ex))

    price = 1000000.0

print(f"price = {price}")

if price <= min_price:

    send_price_alert(user, product, price)

然而,通常情況下,我以這樣一種方式構建我的代碼:無論在try塊中填充什么變量,我都不會在except塊之后使用:


try:

    price = get_min_price(product)

    print(f"price = {price}")

    if price <= min_price:

        send_price_alert(user, product, price)

except Exception as ex:

    print("could not get price for product {}: {}".format(product, ex))

此處,price不在except關鍵字之后使用,因此無需初始化。


查看完整回答
反對 回復 2021-08-17
  • 2 回答
  • 0 關注
  • 380 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號