從 It’s Time to Say Goodbye to These Obsolete Python Libraries 看到的幾個好用的新函式庫跟新功能,雖說用新的怕舊的 Python 不能用,但這些新的函式庫或新功能其實也出蠻長一段時間了,現在大部分的 Linux 發行版也都有跟到。
摘錄如下
Pathlib
處理路徑的函式庫,直接看看這幾種用法,就能體會,比起之前的 os.path 直覺太多。
from pathlib import Path
readme = Path("README.md").resolve()
print(f"Absolute path: {readme.absolute()}")
# Absolute path: /home/martin/some/path/README.md
print(f"File name: {readme.name}")
# File name: README.md
print(f"Path root: {readme.root}")
# Path root: /
print(f"Parent directory: {readme.parent}")
# Parent directory: /home/martin/some/path
print(f"File extension: {readme.suffix}")
# File extension: .md
print(f"Is it absolute: {readme.is_absolute()}")
etc = Path('/etc')
joined = etc / "cron.d" / "anacron"
print(f"Exists? - {joined.exists()}")
Secrets
處理密碼的函式庫,簡單很多,而且語意很清楚。
import secrets
value = secrets.token_bytes(length)
value = secrets.token_hex(length)
dataclass
若之前有使用過 named tuple 的話,會覺得這個函式庫很好用,而且語意更清楚。
from dataclasses import dataclass
@dataclass()
class User:
name: str
surname: str
u = User("John", "Doe")
f-string
Python 從最早期的 “%s” % (name, ) 再到 “{}”.format(name) ,再到 f-string,f-string 讓格式化字串更為清楚,也不容易搞錯。
name = "John"
print(f"Hello {name}!")
結論
定期升級語法,可以帶來效能提升,也可以讓程式更具可讀性,是蠻值得安排時間去逐步更新的。
沒有留言:
張貼留言