python中的fstring的 !r,!a,!s

mac2022-06-30  23

首先是fstring的结构

f ' <text> { <expression> <optional !s, !r, or !a> <optional : format specifier> } <text> ... '

'!s'在表达式上调用str(),'!r'调用表达式上的repr(),'!a'调用表达式上的ascii() 1.默认情况下,f-string将使用str(),但如果包含转换标志,则可以确保它们使用repr () !

class Comedian: def __init__(self, first_name, last_name, age): self.first_name = first_name self.last_name = last_name self.age = age def __str__(self): return f"{self.first_name} {self.last_name} is {self.age}." def __repr__(self): return f"{self.first_name} {self.last_name} is {self.age}. Surprise!"

调用

>>> new_comedian = Comedian("Eric", "Idle", "74") >>> f"{new_comedian}" 'Eric Idle is 74.' >>> f"{new_comedian}" 'Eric Idle is 74.' >>> f"{new_comedian!r}" 'Eric Idle is 74. Surprise!'

2.!a的例子

>>> a = 'some string' >>> f'{a!r}' "'some string'"

等价于

>>> f'{repr(a)}' "'some string'"

3.!d的例子

类似2

pycon2019有人提出的一个展望!d的功能实现: 在python3.8中以及实现上述功能,不过不再使用!d了改为了f"{a=}"的形式

转载于:https://www.cnblogs.com/c-x-a/p/10841930.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)