《Python 3.x入门到应用实践》 —2.1.3 静态类型与动态类型

举报
华章计算机 发表于 2020/02/08 22:31:22 2020/02/08
【摘要】 本节书摘来自华章计算机《Python 3.x入门到应用实践》 一书中第2章,第2.1.3节,作者是赵 军 等。

2.1.3  静态类型与动态类型

Python执行时才决定数据类型的方式属于“动态类型”,什么是动态类型呢?程序设计语言的数据类型按照类型检查方式可分为“静态类型”(Statically-Typed)与“动态类型”(Dynamically-Typed)。

1. 静态类型

编译时会先检查类型,因此变量使用前必须先进行明确的类型声明,执行时不能任意变更变量的类型,像Java、C就属于这类程序设计语言。例如,下面的C语言程序语句声明变量number是int整数类型,变量的初值设置为10,当我们再把 "apple" 赋值给number时,就会出错,因为 "apple" 是字符串,在编译阶段会因类型不符而导致编译失败。

int number = 10

number = "apple"  #Error:类型不符

2. 动态类型

编译时不会事先进行类型检查,在执行时才会按照变量值来决定数据类型,因此变量使用前不需要声明类型,同一个变量还可以赋予不同类型的值,Python就属于动态类型。例如,下面的程序语句声明变量number,同时设置初值为整数10,当我们把字符串apple赋值给number时,就会自动转换类型。

number = 10

number = "apple" 

print( number )  #输出字符串apple

Python有垃圾回收(Garbage Collection)机制,当对象不再使用时,解释器会自动回收,释放内存空间。在上面的例子中,当整数对象number重新赋值成另一个字符串对象时,原本的整数对象会被解释器删除掉。如果对象确定不需要使用了,我们也可以使用“del”指令来删除,语法如下:

del 对象名称

 

例如:

>>>number = "apple"

>>>print( number )  #输出apple

>>>del number        #删除字符串对象number

>>>print(number)    #Error: number未定义

执行结果如图2-3所示。由于变量number已经删除,如果再使用number变量,就会出现变量未定义的错误信息。

 image.png

图2-3


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。