热线电话:13121318867

登录
首页精彩阅读说说Python类型的问题,90%的人回答错误
说说Python类型的问题,90%的人回答错误
2022-04-07
收藏

作者:麦叔

来源:麦叔编程

引子和问题

昨晚出了点紧急状况,几乎一夜无眠。疫情形势还很严峻,请大家一定要做好防护,认真对待。

今天来说说关于Python类型的两个问题吧。这个问题大部分人都会回答错误,或者理解不到位。

  1. Python是强类型还是弱类型?
  2. Python是静态类型还是动态类型?

代码例子

看这个代码例子:

a = 9527 # 打印a的类型 print(type(a))


a = '麦叔' # 再次打印a的类型 print(type(a))

打印的结果如下:

<class 'int'> <class 'str'> 

变量和值不是一回事!

理解这个问题的关键在于认识到:「变量和值不是一回事!」

变量就像一个可擦除的便签条,上面保存了指向对象的引用。而对象是冰箱,洗碗机等可以张贴便签条的具体物体。

最开始「变量a」是指向「数字9527」的。

说说Python类型的问题,90%的人回答错误

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

说说Python类型的问题,90%的人回答错误

在这个过程中并不是数字9527变成了字符串麦叔,「而是变量a的指向发生了变化」

问题答案

理解了上面以后,我们来看上面问题的答案:

  1. 「Python是强类型」:任何一个对象都有属于自己的类型,对象一旦创建,它的类型不会发生改变,除非使用专门的类型转换方法。请注意区分:这个问题说的是对象。下面的问题说的是变量(引用)。
  2. 「Python是动态类型」:Python的变量(引用)本身是没有类型的,它可以随意变换它所指向的对象。这不同于C或C++等静态类型语言。静态类型语言中,变量自己也有类型,一旦确定就不能改变,一旦指向就不能改变,是忠贞不二的。

明白了吗?

下面是一个按照类型强弱和动静分布的编程语言图:

说说Python类型的问题,90%的人回答错误

数据分析咨询请扫描二维码

最新资讯
更多
客服在线
立即咨询