>  Q&A  >  본문

python3.x - Python3,关于str.format的语法

描述问题

format的用法,代码中的!r !s分别是format的哪部分用法
我查阅文档, 未能找到这部分的说明(https://docs.python.org/3/lib...

使用搜索引擎,也不知如何组织关键词

上下文环境

  1. Python3

重现

  1. 拷贝代码

  2. 运行之

相关代码

class Pair:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def __repr__(self):
        return 'Pair({0.x!r}, {0.y!r})'.format(self)
    def __str__(self):
        return '({0.x!s}, {0.y!s})'.format(self)
        
        
 >>> p = Pair(3, 4)
>>> p
Pair(3, 4) # __repr__() output
>>> print(p)
(3, 4) # __str__() output
PHP中文网PHP中文网2764일 전711

모든 응답(1)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-18 09:41:25

    !r 就是 repr
    !s 就是 str
    !a 就是 ascii

    현재 세 가지 변환 플래그가 지원됩니다. 값에 대해 str()을 호출하는 '!s', repr()을 호출하는 '!r', ascii()를 호출하는 '!a'.

    몇 가지 예:

    "해롤드는 영리해요 {0!s}"     # 논쟁에 대해 str()을 먼저 호출합니다
    "성스러운 {이름!r}을 꺼내세요"  # 논쟁에 대해 repr()을 먼저 호출합니다
    "추가 {!a}"          # 인수에 대해 ascii()을 먼저 호출합니다

    회신하다
    0
  • 취소회신하다