知行编程网知行编程网  2022-06-19 06:00 知行编程网 隐藏边栏 |   抢沙发  7 
文章评分 0 次,平均分 0.0

为什么 Python 的 f-string 可以连接字符串与数字?

作者:豌豆花下猫

来源:Python猫

本文出自“Python为什么”系列,归档在 Github 上:https://github.com/chinesehuazhou/python-whydo

毫无疑问,Python 是一门强类型语言。强类型语言。强类型语言!

这就意味着,不同类型的对象通常需要先做显式地类型转化, 然后才能进行某些操作。

下面以字符串和数字为例,看看强行操作会产生什么结果:

其中,花括号里的内容就是要作格式化的内容,除去可选的“optional”部分后,“expression”部分就是真正要处理的内容。对应前文的例子,数字 666 就是一个 expression。

expression 会按 __format__ 协议进行格式化,但是并不会直接调用 __format__() 这个方法。

文档上指出,实际的执行过程等效于type(value).__format__(value, format_spec)或者 format(value, format_spec)

事实上,字符串对象的 foramt() 方法跟 Python 内置的 foramt() 函数,它们都会调用__format__() 魔术方法,所以,f-string 其实是前文中 format() 格式化写法的升级版。

在默认情况下,format_spec 是一个空字符串,而format(value, "") 的效果等同于str(value) ,因此,在不指定其它 format_spec 的情况下,可以简单地认为 f-string 就是调用了 str() 来作的类型转化……

至此,我们看到了 f-string 的实现原理,明白了它在拼接字符串与数字时,效果等效于前文的 format() 格式化方法,也等效于使用 str() 进行类型转化。

参考:https://github.com/chinesehuazhou/python-whydo

为什么 Python 的 f-string 可以连接字符串与数字?



菜鸟编程大本营,已经正式上线

专注于分享趣味的编程技巧,不限于Java, Python ,Go, Javascript等语言,让菜鸟爱上编程,进阶成为高手,欢迎关注。


年度最火的文案

  • 1).卧槽!Pdf转Word用Python轻松搞定

  • 2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃

  • 3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 

  • 4).80行代码!用Python做一个哆来A梦分身 

  • 5).你必须掌握的20个python代码,短小精悍,用处无穷 

  • 6).30个Python奇淫技巧集 

  • 7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 

  • 8).再见Python!我要学Go了!2500字深度分析!

  • 9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享