工作時,會希望使用統(tǒng)一的打印模板來處理散落在各處的打印需求,尤其是在記錄日志時,如果直接使用print函數(shù),那么代碼會顯得尤其繁瑣。這時,比較好的做法是編寫一個函數(shù)來進行封裝。而Python的string.Formatter類提供了字符串格式化功能。制作字符串模板后,通過調(diào)用format(value[, format_spec])方法,就可以依照模板生成一個格式化的字符串,而這個字符串再結(jié)合print等函數(shù),可以在很多地方得到應用。
下面看一個示例:
import datetime
# 設計字符串模板
template = ('\nDate: "{}", Temperature: {:.1f}, Condition: "{}"')
# 根據(jù)字符串模板生成字符串
log = template.format(datetime.datetime.now(), 23.17, 'good')
# 打印格式化后的字符串
print(log)
簡單的三個步驟完成任務:
- 根據(jù)實際需求設計一個字符串模板,也就是代碼中的
template,其中,{}是占位符,在占位符里可以引入各種格式化選項,如1f等等。 - 在系統(tǒng)運行過程中,將實時數(shù)據(jù)按模板指定的格式組合成新的字符串。
- 應用該字符串,例如使用
print函數(shù)進行打印。
通過上述簡單的過程,便可以優(yōu)雅地完成格式化字符串的功能,并和其應用過程(例如print)進行解耦。