我想知道如何寫出最好/最pythonic的情況:如果可以做到,那就做吧。如果不是,就放手吧。什麼是「如果可能,做到這一點」的pythonic方式?
例如: 我有一個從數據庫加載數據的函數。如果給出可寫的目標,則將數據寫入文件。獨立於正在寫入或未寫入的文件,數據總是被返回。我可以當然檢查是否有可寫的位置,如果是這樣的話,將數據寫入文件。但它似乎是一種非pythonic的方式,我認爲「最好是要求寬恕而不是許可」。
我實現這個像這樣:
def loadData(dest=False):
data = someDBRequest()
try:
with open(dest, 'w') as fh:
json.dump(data, fh)
except:
pass
return data
,因爲我實現了一個無用的,除了這種莫名其妙的感覺不好,畢竟我預計DEST不總是被設置爲一個位置,因爲該函數可以不設置它被稱爲。我也覺得這不是一個應該以某種方式記錄或處理的錯誤。
這是一個正確的方法,或者你會建議更好/更pythonic?
另一個原則是「顯式優於隱式」。我也不認爲你在這裏寫的代碼是非常可讀的,你不喜歡它自己。只要做一些最適合你的事。 如果dest提供但不可寫,你真的不想提醒嗎? – philippd