美文网首页
自定义字符串的格式化

自定义字符串的格式化

作者: LittleBear_6c91 | 来源:发表于2019-05-14 20:08 被阅读0次

问题

你想通过 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 = year
                self.month = month
                self.day = day
def __format__(self, code):
        if code == '':
                code = 'ymd'
        fmt = _formats[code]
        return fmt.format(d=self)

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

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

讨论

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

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

相关文章

  • Python3 - 自定义字符串的格式化

    问题 通过 format() 函数和字符串方法使得一个对象能支持自定义的格式化操作。 解决方案 为了自定义字符串的...

  • 自定义字符串的格式化

    问题 你想通过 format() 函数和字符串方法使得一个对象能支持自定义的格式化。 解决方案 为了自定义字符串的...

  • python 自定义格式化__format__

    为了自定义字符串的格式化,我们需要在类上面定义 format() 方法。例如: _formats = {'ymd'...

  • Python基础(18) - 字符串格式化与模板字符串方法

    字符串格式化的各种方法 格式化字符串的方法 使用%格式化 模板字符串 字符串的format方法 fstring 什...

  • 字符串

    字符串的转义字符 字符串格式化 字符串格式化使用操作符百分号实现 字符串格式化符号 对字符串的下面这两个部分操作:...

  • 简单的宏定义(不定期补充)

    控制台输出 RGB色值 格式化字符串 格式化字符串 输出点、坐标、Rect 格式化数字

  • python基础知识(3)

    python字符串 python转义字符 python字符串运算符 python字符串格式化 python格式化操...

  • win10 微软输入法自定义短语

    自定义短语:最实用就是时间相关,可以用时间变量, 其他的就是一个自定义快捷键 1.时间相关 一些基本的格式化字符串...

  • lab9

    格式化字符串漏洞,不过是有点蛇皮的格式化字符串,学到了不少新姿势 很明显的格式化字符串,但同时也可以发现,我们的输...

  • python语法入门二

    元组 字符串 格式化 序列 元组tuple:不可变 字符串:不可变 格式化 序列

网友评论

      本文标题:自定义字符串的格式化

      本文链接:https://www.haomeiwen.com/subject/groeaqtx.html