python是动态语言,是否弱类型语言

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python是动态语言,是否弱类型语言相关的知识,希望对你有一定的参考价值。

参考技术A 不是。python是强类型语言,一个变量不经过强制转换,它永远是这个数据类型,不允许隐式的类型转换。
例如:1+"2"
在python中会报错,因为一个数字,一个是字符串,python是强类型语言,不会默认进行转换,所以报错。

简单理解弱类型动态类型解释型语言

弱类型和强类型

简单的说,二者的区别就是是否偏向于容忍隐式类型转换

$str = ‘abc‘;   //str是一个字符串

$str = 1;    //这时候又变成整形

if($str){};  //这时候又是一个布尔型

所以php是弱类型语言,变量类型会自动转换。

 

动态类型和静态类型

简单的说,二者的区别就是声明变量的时候是否需要指定变量类型

php是动态类型语言,声明变量时无需指定类型。

注意: 一个语言是不是强类型语言和是不是动态类型语言没有必然联系。

 

动态语言和静态语言

简单的说,二者的区别就是代码运行时是否可以改变其结构。例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。

php是动态语言,代码运行时可以动态改变结构。

 

解释型和编译型

用编译型语言写的程序执行之前,需要先有一个专门的编译过程,以后就可以直接运行而不需要编译了,例如windows的exe文件,因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率较高。

解释型语言编写的程序不需要编译,只在运行的时候才翻译,但是这样的话每执行一次就要翻译一次,效率比较低。优点在于不需要专门的编译过程,可以随时编写代码并立即运行。

php是解释型语言。

 

以上是关于python是动态语言,是否弱类型语言的主要内容,如果未能解决你的问题,请参考以下文章

动态语言,静态语言,强类型定义语言,弱类型定义语言

简单理解弱类型动态类型解释型语言

强类型和弱类型,静态类型和动态类型语言如何区分

强类型语言/弱类型语言动态语言/静态语言编译型语言/解释型语言(整理)

python 是强类型语言吗?

Python语言基础常考题