工作时,会希望使用统一的打印模板来处理散落在各处的打印需求,尤其是在记录日志时,如果直接使用print
函数,那么代码会显得尤其繁琐。这时,比较好的做法是编写一个函数来进行封装。而Python的string.Formatter
类提供了字符串格式化功能。制作字符串模板后,通过调用format(value[, format_spec])
方法,就可以依照模板生成一个格式化的字符串,而这个字符串再结合print
等函数,可以在很多地方得到应用。
下面看一个示例:
import datetime
# 设计字符串模板
template = ('\nDate: "{}", Temperature: {:.1f}, Condition: "{}"')
# 根据字符串模板生成字符串
log = template.format(datetime.datetime.now(), 23.17, 'good')
# 打印格式化后的字符串
print(log)
简单的三个步骤完成任务:
- 根据实际需求设计一个字符串模板,也就是代码中的
template
,其中,{}
是占位符,在占位符里可以引入各种格式化选项,如1f
等等。 - 在系统运行过程中,将实时数据按模板指定的格式组合成新的字符串。
- 应用该字符串,例如使用
print
函数进行打印。
通过上述简单的过程,便可以优雅地完成格式化字符串的功能,并和其应用过程(例如print
)进行解耦。