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

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

时间2025-09-23 22:40:06分类IT科技浏览4803
导读: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
js根据数组对象中的一个值排序(JS数组操作大全对象数组根据某个相同的字段分组)