partial string formatting

前端 未结 21 1093
野的像风
野的像风 2020-11-28 04:30

Is it possible to do partial string formatting with the advanced string formatting methods, similar to the string template safe_substitute() function?

F

21条回答
  •  被撕碎了的回忆
    2020-11-28 05:21

    Thanks to Amber's comment, I came up with this:

    import string
    
    try:
        # Python 3
        from _string import formatter_field_name_split
    except ImportError:
        formatter_field_name_split = str._formatter_field_name_split
    
    
    class PartialFormatter(string.Formatter):
        def get_field(self, field_name, args, kwargs):
            try:
                val = super(PartialFormatter, self).get_field(field_name, args, kwargs)
            except (IndexError, KeyError, AttributeError):
                first, _ = formatter_field_name_split(field_name)
                val = '{' + field_name + '}', first
            return val
    

提交回复
热议问题