作者:Python进阶者
来源:Python爬虫与数据挖掘
一、前言
前几天在Python黄金交流群【dcpeng】问了一道Python类型的基础问题,如下图所示。
二、实现过程
针对这个问题,大佬们一起讨论,给出了具体的结论,Python里的布尔值是数字类型。这里【崔峰】给了一个代码,如下所示:
可以看到,布尔类型和int类型的实例是同一个,但是True和1这两个变量指向的对象id不相同,便是同个不同的对象,一个布尔对象,一个是。
后来【瑜亮老师】补充了最强王者交流群之前针对该类似问题的讨论记录。
还记得【小小明大佬】的bool值加数字对字符串进行切片操作么?
后来【格格物 এ คิดถึง】补充了一个重要的知识点,如下图所示。
布尔值属于数字类型。
后来【flag != flag】也查到int是bool的父类。
果然是真的。
这里使用__base__属性查看父类,可以看到布尔类型的父类的确是int。
顺利解决粉丝的问题。最后关于is和==的区别,这里【瑜亮老师】给了一个比方,挺清晰了,一起学习下。
引申:
参考阅读:《Python中神秘的-5到256》:
https://zhuanlan.zhihu.com/p/33907983
《Python中字符串的intern机制》:
https://www.cnblogs.com/greatfish/p/6045088.html
《Python中字符串的intern机制》:
https://mrcuriosity.org/python-string-intern.html
如果有遇到问题,随时联系我解决,欢迎加入我的Python学习交流群。
三、总结
大家好,我是皮皮。这篇文章主要盘点了一道Python类型基础的问题,文中针对该问题给出了具体的解析和代码实现,帮助粉丝顺利解决了问题。