假設我有一個帶有變數drinks的函式,其值可能會在以后擴展:
def what_to_drink(drinks):
assert drinks in ['coffee','tea'], "Invalid 'drink' value. Please choose between 'coffee' or 'tea'."
if drinks == 'coffee':
print("I don't drink coffee, I drink tea my dear")
elif: drinks == 'tea':
print("I am an English man in New York")
由于可能會擴展飲料的值,因此使用elif代替else. 但是,if 陳述句是否應該以 else 陳述句結束?這似乎是多余的,因為 assert 運算子已經充當了不需要的值的看門人。但是,如果沒有 else 陳述句,邏輯似乎不完整。
uj5u.com熱心網友回復:
編輯:正如@user2390182和@TedKleinBergman所指出的,與
assertelse 是否有用相比,當邏輯不允許它到達那里時,首先的使用可以說是一個更重要的考慮因素。但是,我在這里假設您已決定使用assert自己,并且將以assert始終尊重的方式使用它。
事實:
因為drinks總是必須是你的串列的一個元素,只要你總是elif為串列中的每個專案分配一個,你永遠不會到達一個else,因此它是不必要的。
意見:
在這種情況下如何正確練習,這真的取決于個人選擇。在線共識通常是“代碼越少越好”,但如果它使您的代碼更清晰,或者您可能經常更改飲料清單,則將其添加為全部內容可能更有意義,以停止任何事情在您的開發程序中中斷。與許多此類決定一樣,您必須逐案考慮,并決定在這種情況下您認為哪個更好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/325806.html
