Python是强类型,python的动态特性

  Python是强类型,python的动态特性

  Python是动态强类型的,我们可以根据Python的变量定义和使用来判断。

  Python变量声明和定义

  与C#不同,Python在使用变量之前不需要定义变量的类型。尝试运行以下示例:

  i=12printi

  从上面我们可以看出,变量I在使用前不需要定义,但是必须声明和初始化。尝试运行以下示例:

  i=1

  printi j上面的代码会产生异常:“名称错误:名称‘j’未定义”,Python提示变量j未定义。这与弱类型语言(如BASIC)不同。在BASIC中,执行上述代码时,不会出现异常。你可以在EXCEL的VBA开发环境下试试,只要把print改成MsgBox,结果会输出1。这说明Python不是类似于BASIC的弱类型语言。

  另一方面,Python和C#有一个很大的区别,在程序运行过程中,同一个变量名可以表示不同类型的数据(在不同阶段)。看一下下面的例子:

  i=1

  打印,类型(一),id(一)

  i=10000000000

  打印,类型(一),id(一)

  i=1.1

  变量I的类型printi,type(i),id(i),在程序执行过程中经历了int,long,float的变化,与静态类型语言(如C)有很大区别。静态语言只要一个变量得到一个数据类型,就永远是这个类型。变量名代表用于存储数据的内存位置。Python中使用的变量名只是对各种数据和对象的引用,存储数据的内存位置是用id()获取的。我们输入的三个数据,1,000,000,000和1.1,会存储在这些用id()表示的内存位置,直到垃圾收集器把它拉走(当系统确定你不再使用它的时候)。这是动态语言的典型特征。当变量被赋值时,它决定变量的类型。

  另一方面,Python是强类型的。尝试运行以下示例:

  #-*-编码:utf-8-*-

  i=10j=ss

  印刷杂志

  #正确的写法是printstr(i) j,输出10ss会产生异常:“TypeError 3360不支持opera和type (s) for 3360 int 和 str ”。在弱类型语言(如BASIC)中,上述示例将正常运行并返回(尽管有时无法预测)结果。

  所以我们说Python不仅是一种动态类型语言,还是一种强类型语言,和C#不一样。C#程序员可能需要一段时间来习惯这个变量在Python中的声明、定义和使用,但我相信你很快就会喜欢上它,因为它让事情变得更简单(而且不安全)。此外,C# 4.0已经开始以类似的方式定义和使用变量(通过在变量名前添加关键字dynamic)。如果你先学习Python变量,你将能够更快地适应C# 4.0的动态编程特性。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: