作者:豌豆花下猫
来源: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
菜鸟编程大本营,已经正式上线
专注于分享趣味的编程技巧,不限于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
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 为什么python找不到六个模块12/23
- ♥ python如何用函数删除空格10/19
- ♥ python namedtuple如何定义数据类型12/30
- ♥ python的输入功能是如何工作的?08/18
- ♥ pycharm如何配置python解释器08/24
- ♥ 如何在 python 中处理 django 迁移数据?12/10
内容反馈