• 关于python中format占位符中的 {!} 参数


    在看celery的时候,发现里面有这么一句

    print('Request: {0!r}'.format(self.request))
    

    关于里面的{0!r}是什么意思翻了一下文档。

    文档里是这么描述的

    replacement_field ::=  "{" [field_name] ["!" conversion] [":" format_spec] "}"
    
    ------
    
    Two conversion flags are currently supported: '!s' which calls str() on the value, and '!r' which calls repr().
    
    Some examples:
    
    "Harold's a clever {0!s}"        # Calls str() on the argument first
    "Bring out the holy {name!r}"    # Calls repr() on the argument first
    

    是说感叹号后面跟的是conversion,而conversion有两个值.

    分别是s对应str()函数, r对应repr()函数。

    因此上面的翻译一下类似于下面

    "Harold's a clever {0!s}" == "Harold's a clever str({0})"
    
    "Bring out the holy {name!r}" == "Bring out the holy repr({name})"
    

    实际调用时的写法应该是

    "Harold's a clever {0!s}".format(string) == "Harold's a clever {0}".format(str(string))
    
    "Bring out the holy {name!r}".format(string) == "Bring out the holy {name}".format(repr(string))
  • 相关阅读:
    设计模式-装饰器模式
    自定义 RestTemplate 异常处理 (转)
    Jackson 高级应用
    Jackson 的 基本用法
    Jackson转换为Collection、Array
    Jackson中处理map中的null key 或者null value 及实体字段中的null value
    sed
    MySQL server has gone away 异常
    nl命令
    线程池
  • 原文地址:https://www.cnblogs.com/leisurelylicht/p/6631949.html
Copyright © 2020-2023  润新知