zoukankan      html  css  js  c++  java
  • python中的fstring的 !r,!a,!s

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

  • 相关阅读:
    Vue-CLI项目-axios模块前后端交互(类似ajax提交)
    Vue-CLI项目中路由传参
    HTML标签嵌套规则
    POJ1050 To the Max
    POJ2488 A Knight's Journey
    POJ1083 Moving Tables
    洛谷P1265 公路修建
    POJ2236 Wireless Network
    洛谷P1991 无线通讯网
    POJ1018 Communication System
  • 原文地址:https://www.cnblogs.com/c-x-a/p/10841930.html
Copyright © 2011-2022 走看看