值得收藏!編寫乾淨的 Python 程式碼的 5 個技巧!

數據分析那些事
5 min readApr 6, 2022

--

平時是否思考過如何編寫乾淨的 Python 程式碼嗎?

今天我將給大家分享五個技巧,確保你的程式碼正常工作、易於閱讀並充分利用 Python 提供的功能模組。

使用易於記憶的變數名

通常在程式設計時,我們不會停下來考慮一個易於閱讀、發音和記憶的描述性變數名稱。這是一個不好的做法,因為我們將在不考慮描述性變數名稱時節省的時間,我們將在未來花費它來嘗試理解該變數應該做什麼。

❌Bad way

from datetime import date
ymdstr = date.now().isoformat()

✅Good way

from datetime import date
currentDate = date.now().isoformat()

哪個更好地描述了變數的功能?ymdstr 還是 currentDate?

在宣告變數併為它選擇一個好名字時,最好多花幾秒鐘,而不是在未來浪費兩倍(或三倍)的時間試圖理解它的功能是什麼。

建立易於搜尋的變數名稱

每個程式設計師都應該知道的一件事是,在我們的程式設計生涯中,我們將花費更多的時間閱讀程式碼並嘗試理解它,而不是編寫它。

❌Bad way

# What the h*ck is 420 for?
result = serializer.serialize(data, 420)

✅Good way

json = serializer.serialize(data, sort_keys=True, indent=4)

如果我們停下來閱讀兩個程式碼摘錄(好的和壞的),我們會意識到在壞程式碼摘錄之前快速理解好的程式碼摘錄要容易得多。

使用具有高度描述性的名稱

當你將函式作為引數送給另一個函式時,它導致的唯一原因是我們無法正確遵循程式碼並且我們很難理解它的作用。

❌Bad way

import re

address = 'S Grand Ave, LA 90013'

city_zip_code_regex = re.compile("^[^,]+,\s*(.+?)\s*(\d{5})$")

matches = city_zip_code_regex.match(address)

save_city_zip_code(matches.group(1), matches.group(2))

✅Good way

address = 'S Grand Ave, LA 90013'

city_zip_code_regex = re.compile("^[^,]+,\s*(?P<city>.+?)\s*(?P<zipcode>\d{5})$")

matches = city_zip_code_regex.match(address)

save_city_zip_code(matches.group('city'), matches.group('zipcode'))

透過這個例子,我們可以看到如何透過命名子模式來減少正則表示式的依賴。這使得程式碼更容易閱讀和理解。

不要過度使用 if-else

很多時候,我們並沒有過多考慮未來,在某些時候我們可能不得不修改程式碼,所以我們儘量不要濫用 if-else。if-else巢狀越多,程式碼就越難理解。

❌Bad way

def is_shop_open(day: str):
if day:
day = day.lower()
if day == ‘friday’:
return True
elif day == ‘saturday’:
return True
elif day == ‘sunday’:
return True
else:
return False
else:
return False

✅Good way

def is_shop_open(day: str):

for open_day in ['friday','saturday','sunday']:
if day == open_day:
return True

return False

看看這個例子有多幹淨。行數更少,更容易理解。記住:顯式優於隱式。

不要新增不必要的上下文

這個小的技巧是基於”不要重複自己”。如果你擁有的任何類或物件的名稱已經描述了某些內容或提供了有關其功能的明確資訊,那麼在變數名稱中重複自己是不好的。

❌Bad way

class Car: carMake = ‘’
carModle = ‘’
carColor = ‘’
#…
}

✅Good way

class Car:
make = ‘’
modle = ‘’
color = ‘’
#…

透過這種方式,我們不會重複汽車,因為它過於重複,並沒有真正為我們增加價值。記住,越簡單越好。

總結

如何編寫更簡潔、更高效的 Python 程式碼不僅考驗一個人的編碼內功,更能讓閱讀程式碼的人容易理解,提升工作效率。

文章來源於:Python學習與資料探勘
文章連結:
https://mp.weixin.qq.com/s/uCLcEe8sXoFW-2wGj6meTA

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

我是「数据分析那些事」。常年分享数据分析干货,不定期分享好用的职场技能工具。各位也可以关注我的Facebook,按赞我的脸书并私讯「10」,送你十周入门数据分析电子书唷!期待你与我互动起来~

文章推荐

10个Python 小技巧

Python中几个有趣的函式

如何识别商业资料报告中的假资料

统计学上的四种错误

进阶指南:如何从资料分析师转型为资料科学家?

--

--

數據分析那些事
數據分析那些事

Written by 數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/

No responses yet