Python 语言的特性
Python 是一门动态的、强类型语言。
什么是动态语言?
动态编程语言是高级程序设计语言的一个类别,在计算机科学领域已被广泛应用。它是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。
引用自 知乎 动态语言 话题介绍 Topic 19616169
要了解动态语言,首先需要了解“类型检查”。
类型检查是验证类型约束的过程,编译器或解释器通常在编译阶段或运行阶段做类型检查。
类型检查就是查看“变量”和它们的“类型”,然后判断表达式是否合理。
例如,你不能拿一个 String 类型变量,去除浮点数变量。
如果类型检查发生在程序的运行阶段(Run Time),那么它便是“动态类型语言”(Dynamically Typed Languages)。这类型语言常见的包括:
- Python
- JavaScript
- PHP
- Lua
如果类型检查发生在程序的编译阶段(Compile Time),那么它便是“静态类型语言”(Statically Typed Languages)。这类型语言常见的的包括:
- C
- C++
- Java
- C#
- Scala
因此,我们可以说:
动态语言指代码运行时才被编译器一行一行翻译执行。
什么是强类型语言?
强类型语言是指:
不论是在编译阶段还是在运行阶段,一旦某种类型绑定到了变量,这个变量便会持有此类型,并且不能同其他类型在计算表达式时混合使用。
例如,在交互式工具 IPython 中输入下列代码:
In [1]: a = 5
In [2]: a = a + 's'
程序会抛出 TypeError 异常:
unsupported operand type(s) for +: 'int' and 'str'
这个异常的意思是不支持 int 变量 和 str 变量相加。
常见的强类型语言有:
- Python
- Java
- C#
- Scala
与之对应的为弱类型语言。弱类型语言容易与其他类型混合计算。
弱类型语言代表 JavaScript 支持如下操作:
var data = 5
data = data + 'saga' // string 和 int 结合,自动转化为 string
常见的弱类型语言有:
- C
- C++
- PHP
- JavaScript