作者:麦叔
来源:麦叔编程
引子和问题昨晚出了点紧急状况,几乎一夜无眠。疫情形势还很严峻,请大家一定要做好防护,认真对待。
今天来说说关于Python类型的两个问题吧。这个问题大部分人都会回答错误,或者理解不到位。
- Python是强类型还是弱类型?
- Python是静态类型还是动态类型?
看这个代码例子:
a = 9527 # 打印a的类型 print(type(a))a = '麦叔' # 再次打印a的类型 print(type(a))打印的结果如下:
<class 'int'> <class 'str'> 变量和值不是一回事!理解这个问题的关键在于认识到:「变量和值不是一回事!」
变量就像一个可擦除的便签条,上面保存了指向对象的引用。而对象是冰箱,洗碗机等可以张贴便签条的具体物体。
最开始「变量a」是指向「数字9527」的。

当我们再次赋值的时候,它又指向了「字符串麦叔」。

在这个过程中并不是数字9527变成了字符串麦叔,「而是变量a的指向发生了变化」。
问题答案理解了上面以后,我们来看上面问题的答案:
- 「Python是强类型」:任何一个对象都有属于自己的类型,对象一旦创建,它的类型不会发生改变,除非使用专门的类型转换方法。❝请注意区分:这个问题说的是对象。下面的问题说的是变量(引用)。❞
- 「Python是动态类型」:Python的变量(引用)本身是没有类型的,它可以随意变换它所指向的对象。❝这不同于C或C++等静态类型语言。静态类型语言中,变量自己也有类型,一旦确定就不能改变,一旦指向就不能改变,是忠贞不二的。❞
明白了吗?
下面是一个按照类型强弱和动静分布的编程语言图:

编辑推荐
1、2022年300个以上最佳免费数据科学课程
2、大厂数据分析面试指南!来自亚马逊、谷歌、微软、头条、美团的面试问题!
3、机器学习模型方法总结
4、历史最全机器学习/深度学习/人工智能专业术语表中英对照表
5、机器学习如何应用于商业场景?三个真实的商业项目
6、数据工作者的自我修养 | 哪些技能是必不可少的?
7、《汗牛充栋:数据分析书籍分享》CDA网校新课上线
8、文本挖掘常用的107个语料库
9、一图读懂“东数西算”工程
10、零基础转行数据分析,看这篇文章就够了
DA内容精选


雷达卡





京公网安备 11010802022788号







