首先是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=}"的形式

最新文章

  1. Android中用TextView显示大量文字的方法
  2. python装饰器通俗易懂的解释!
  3. C++ 以费波纳茨数列为权重的加权均值计算方法 wMA
  4. json格式
  5. webshell下执行命令脚本汇集
  6. How far away[HDU2586]
  7. JavaPersistenceWithHibernate第二版笔记-第六章-Mapping inheritance-001Hibernate映射继承的方法
  8. AJAX 基础知识
  9. 初学Pexpect
  10. E - 归并排序 求逆序数
  11. WPF-19:分享一个样式(左右滑动选中的checbox)
  12. Tiny6410之重定位代码到SRAM+4096
  13. python之~【空格】可不能随便加唷~
  14. Java笔试题解答
  15. spring boot入门小案例
  16. QQ聊天框变成方框口口口口的解决办法
  17. UE4 位置转换相关函数
  18. 【理论面试篇】收集整理来自网络上的一些常见的 经典前端、H5面试题 Web前端开发面试题
  19. Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十九):服务消费(Ribbon、Feign)
  20. git提交本地分支到远程分支

热门文章

  1. 使用JavaFX开发桌面程序(一)
  2. Oracle学习笔记:窗口函数
  3. Centos7:nginx的安装,配置及使用
  4. js 使用sessionStorage总结与实例
  5. 短信对接——一种jdbc链接运用
  6. hadoop 中ALL Applications 中Tracking 下History查找不到MapReduce Job 日志
  7. mysql使用存储过程,批量生成测试数据
  8. Spring基础01——在IDEA中编写spring.xml
  9. Summer training #3
  10. 特殊字符的过滤方法,防sql防注入代码的过滤方法