首页IT科技python动态属性(Python是动态强类型的吗)

python动态属性(Python是动态强类型的吗)

时间2025-06-20 09:09:31分类IT科技浏览3632
导读:Python是动态强类型的,我们可以根据Python的变量定义和使用来进行判断。...

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

Python变量声明和定义

与C#不同                 ,Python在使用变量之前无须定义它的类型     ,试着运行下面的例子:

i=12printi

从上边我们可以看到            ,变量 i 在使用前并不需要定义                  ,但是必须声明以及初始化该变量                 。试着运行下面的例子:

i=1 printi+j

上面的代码会产生一个异常:“NameError: name j is not defined            ”     ,Python提示变量 j 没有定义     。这点和BASIC等弱类型的语言不一样            。在BASIC中      ,执行上述代码的时候不会产生异常                  ,你可以在EXCEL的VBA开发环境里试一下           ,把 print改为MsgBox就可以      ,结果会输出 1                  。这说明Python并不是一种类似BASIC的弱类型语言     。

另一方面                  ,Python与C#有一个很大的差异就是在程序运行过程中           ,同一变量名可以(在不同阶段)代表不同类型的数据,看看下边的例子:

i=1 printi,type(i),id(i) i=10000000000 printi,type(i),id(i) i=1.1 printi,type(i),id(i)

变量 i 的类型在程序执行过程中分别经历了int            、long和float的变化                  ,这和静态类型语言(如C等)有很大不同      。静态语言只要一个变量获得了一个数据类 型                 ,它就会一直是这个类型,变量名代表的是用来存放数据的内存位置                  。而Python中使用的变量名只是各种数据及对象的引用            ,用id()获取的才是存放数 据的内存位置                 ,我们输入的1                 、10000000000和1.1三个数据均会保存在id()所指示的这些内存位置中     ,直到垃圾回收车把它拉走(在系统确定你 不再使用它的时候)           。这是动态语言的典型特征            ,它确定一个变量的类型是在给它赋值的时候      。

另一方面                  ,Python又是强类型的     ,试着运行下边的例子:

#-*-coding:utf-8-*- i=10;j=ss printi+j #正确的写法是printstr(i)+j      ,输出10ss

会产生一个异常:“TypeError: unsupported operand type(s) for +: int and str                 ”                  。在BASIC等弱类型的语言中                  ,上边的例子会正常运行并返回(虽然有时候是不可预期的)结果           。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
wordpress会员权限插件(WordPressVIP会员插件——打造专业博客网站的首选)