寫法
有些人會很喜歡用一些比較聰明簡短的方式來撰寫,但有時團隊中會有菜鳥或初學者時,就會出現滿臉問號。
聰明簡短的方式:
users = [{"first_name": "Helen", "age": 39},
{"first_name": "Buck", "age": 10},
{"first_name": "anni", "age": 9}
]
users = sorted(users, key = lambda user: user["first_name"].lower())
上面的程式碼使用一行程式碼就完成計算,除了對新手稍微不友善外,可能還遺漏了一些檢查等過程,可以修改為以下:
users = [{"first_name": "Helen", "age": 39},
{"first_name": "Buck", "age": 10},
{"first_name": "anni", "age": 9}
]
def get_user_name(users):
"""將名字轉換為小寫"""
return users["first_name"].lower()
def get_sorted_dictionary(users):
"""檢查型態與長度,並依照first_name進行排序"""
if not isinstance(users, dict):
raise ValueError("Not a correct dictionary")
if len(users) == 0:
raise ValueError("Empty dictionary")
users_by_name = sorted(users, key = get_user_name)
return users_by_name
透過額外建立兩個函數,可以讓思慮更為清晰,除了增加可讀性外,亦可進行資料格式檢查,以幫助後面的debug與測試流程。
過於簡潔方式:
if val: # Will work when val is not None
#
建議方式:
if val is not None: # Make sure only None value will be false
Last updated