Python: format __format__

 

__format__ 在format(object,format_spec:str), f-string, ''.format()生效

 

format_spec

[[fill]align][sign][#][0][minimumwidth][.precision][type]

 

 

复制代码
class Superfluous:
    def __format__(self, format_spec):
        print(f'__format__ format_spec: {format_spec}, format_spec == "": {format_spec == ""}')
        # return super(Superfluous, self).__format__(format_spec)
        return str.format(f'{{:{format_spec}}}', str(self))

    def __str__(self):
        print('__str__')
        return 'superfluous'


b = Superfluous()

print(format(b, '#^20'))
print('~' * 80)
print(b.__format__('#^20s'))
print('~' * 80)
print(object.__format__(b, ''))
print('~' * 80)
print(str(b))
print('~' * 80)
# print(object.__format__(b))
print(f'{b}')
print('~' * 80)
print(len(f'{b}'))
print('~' * 80)
print(f'{b!r}')
print('~' * 80)

print(str.format('>> {:>20}', b))
复制代码

 

posted @   ascertain  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2020-10-12 import
2020-10-12 openvpn client端
点击右上角即可分享
微信分享提示