3 回答

TA貢獻1852條經驗 獲得超7個贊
您可以使用循環和字符串插值將其減少為:
for key in ('name', 'type', 'of'):
if key not in item:
error = "no {} key found in definition".format(key)
return False, error, {}

TA貢獻1796條經驗 獲得超10個贊
好吧,這段代碼可以重構以避免像這樣重復:
for part in ['name', 'type', 'of']:
if part not in item:
error = "no {} key found in definition".format(part)
return False, error, {}
不確定我是否可以添加很多關于 Python 中一般驗證的最佳實踐。我認為使用這樣的通用結構幾乎可以根據需要完成。

TA貢獻1865條經驗 獲得超7個贊
如果您明確命名丟失的鍵而不是執行類似的操作
if "name" not in item or "type" not in item or "of" not in item:
return False, "key missing in definition", {}
你可能應該做對并遍歷所有這些。調整 Dan D. 的解決方案:
error = ''
for key in ('name', 'type', 'of'):
if key not in item:
error += " no {} key found in definition".format(key)
if error != ''
return False, error, {}
或者類似的東西。如果缺少名稱和類型怎么辦?您只會在示例中看到缺少的名稱。
添加回答
舉報