由於 Python 動態型別(執行階段可以任意改變變數的型別)的特性,所以很多時候開發者們都會透過變數的命名讓他人知道該變數的型別,例如:
dicts = [{"key": "value"}, {"key": "values"}]
複數型的 dicts 命名讓其他人在閱讀時能夠大致猜到它可能是個字典(dict)的列表(list)。
但是現代專案不可能經常是如此簡單的結構,有時光從命名仍難以了解是什麼型別的變數,例如:
def get_value(json):
return parse(json)
當我們看到上述函式中的 json 時,就會疑惑它是什麼? str? dict? 而回傳的值到底長怎樣,有什麼 key 可以使用?也由於這種不確定性,所以在除錯甚至協同開發時都需要實際執行才能夠知道該變數到底是什麼型態,在複雜的大型專案中甚至會成為一種痛苦。
p.s. Javascript 也有相同的痛點,所以才有 TypeScript 問世
這種情況,我們除了用心命名之外,還可以搭配使用 typing 模組來改善!
Last updated on
Sep 24, 2023
in
Python 程式設計 - 中階
by
Amo Chen
‐ 6 min read