Python「强类型」or「弱类型」?90% 的人说不清

13825820-0ee086825468b165.jpg

作者 | Python3分钟
来源 | python3m

  • 静态类型 vs 动态 编程语言
  • 强类型 vs 弱类型 编程语言

1 类型检查

类型检查是一个验证和施加类型约束的过程,编译器或解释器通常在编译或运行阶段做类型检查。例如,你不能拿一个string类型值除以浮点数。

用更简单的术语,类型检查仅仅就是查看变量和它们的类型,然后说这个表达式是合理的。

因此,现在我们知道类型检查是什么,明白这些术语真的很简单。

在静态类型语言(statically typed languages)中,类型检查发生在编译阶段(compile time),然而,在动态类型语言(dynamically typed languages)中,类型检查发生在运行阶段(run time)

2 它意味着什么?

2.1 类型声明

静态类型(static): 所有的变量类型必须被显示地声明,因为这些信息在编译阶段就被需要。例如,在 Java 中

float f = 0.5

动态(Dynamic): 显示声明不被要求,因为类型赋值发生在运行阶段。例如在 Python 中,

f = 0.5

2.2 性能

静态类型(static): 编译阶段做更多处理,但是运行时(run-time)性能更好

动态(Dynamic): 编译阶段更高效,但是运行时的类型检查会影响到性能

2.3 灵活性和出错

静态类型: 运行时出错机会更小,但是提供给程序员的灵活性不好

动态类型: 提供更多的灵活性但是运行时出错机会相对更大

2.4 记住

各种语言按照动态/静态,弱类型/强类型的划分:

13825820-33f07980deac7025.jpg

3 什么是强类型/弱类型?

首先看下什么是强类型,在强类型中,不管在编译时还是运行时,一旦某个类型赋值给某个变量,它会持有这个类型,并且不能同其他类型在计算某个表达式时混合计算。例如在Python中:

data = 5 # 在runtime时,被赋值为整形
data = data + "xiaoming" # error

然而,在弱类型中,它是很容易与其他类型混合计算的,比如同样一门伟大的语言 Javascript,使用它:

var data = 5
data = data + 'xiaoming' //string和int可以结合

4 结论

类型检查确保一个表达式中的变量类型是合法的。在静态类型语言中,类型检查发生在编译阶段;动态类型语言,类型检查发生在运行阶段。

强类型语言有更强的类型检查机制,表达式计算中会做严格的类型检查;而弱类型语言允许各种变量类型间做一些运算。

Python是一门动态的(dynamic)且强类型(strong)语言。

如果您是以下几种情况之一:

  • 1、想了解更多有关大数据分析、数据挖掘、机器学习、人工智能领域内容的好学者;
  • 2、职业遭遇瓶颈,想提升自己在数据分析或人工智能领域的硬件技能的在职人士;
  • 3、寻求新出路、新突破,有意向转行到数据分析行业或人工智能领域的求职人士;
  • 4、对未来摇摆不定,有兴趣想Python、数据分析、人工智能方向发展的在校大学生。

可给我们私信留言,我们会在第一时间为您答疑解惑,提供专业而具体的建议!

也可以搜索进入我们的小程序,解锁更多新鲜资讯和优质内容,还有很多免费试听课程,不要错过哟!

13825820-7fff92d8738e95eb.jpg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值