失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python实战从入门到精通第十九讲——自定义字符串的格式化

Python实战从入门到精通第十九讲——自定义字符串的格式化

时间:2023-02-17 12:26:35

相关推荐

Python实战从入门到精通第十九讲——自定义字符串的格式化

通过format()函数和字符串方法使得一个对象能支持自定义的格式化。

为了自定义字符串的格式化,我们需要在类上面定义__format__()方法。例如:

_formats = {'ymd' : '{d.year}-{d.month}-{d.day}','mdy' : '{d.month}/{d.day}/{d.year}','dmy' : '{d.day}/{d.month}/{d.year}'}class Date:def __init__(self, year, month, day):self.year = yearself.month = monthself.day = daydef __format__(self, code):if code == '':code = 'ymd'fmt = _formats[code]return fmt.format(d=self)

现在Date类的实例可以支持格式化操作了,如同下面这样:

>>> d = Date(, 12, 21)>>> format(d)'-12-21'>>> format(d, 'mdy')'12/21/'>>> 'The date is {:ymd}'.format(d)'The date is -12-21'>>> 'The date is {:mdy}'.format(d)'The date is 12/21/'

__format__()方法给Python的字符串格式化功能提供了一个钩子。 这里需要着重强调的是格式化代码的解析工作完全由类自己决定。因此,格式化代码可以是任何值。 例如,参考下面来自datetime模块中的代码:

>>> from datetime import date>>> d = date(, 12, 21)>>> format(d)'-12-21'>>> format(d,'%A, %B %d, %Y')'Friday, December 21, '>>> 'The end is {:%d %b %Y}. Goodbye'.format(d)'The end is 21 Dec . Goodbye'

如果觉得《Python实战从入门到精通第十九讲——自定义字符串的格式化》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。