栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python是一种弱类型的语言,因为变量可以切换类型吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python是一种弱类型的语言,因为变量可以切换类型吗?

您的示例演示了 动态
键入,而不是弱类型。动态类型化通常意味着对象可以存储的数据类型是可变的。任何目标都可以绑定到任何种类的对象。可以将它与静态类型为[*]的C#进行对比。

int i = 5; // Okay.i = "5";   // Illegal! i can only hold integers.

强类型化意味着一旦分配了特定种类的值,对象就应遵循严格的规则,即它们如何与各种类型的其他对象进行交互。弱打字意味着这些规则更加宽松。这并不意味着强类型语言必须在任何方面都具有优势。这只是一种语言设计选择。

Python被认为是强类型的,因为对象对它们的类​​型有不同的概念。对象之间不兼容的操作会导致错误:

>>> 1 + 1          # Add two integers.2>>> "1" + "1"      # Concatenate two strings.'11'>>> 1 + int("1")   # Add two integers.2>>> "1" + str(1)   # Concatenate two strings.'11'>>> 1 + "1"        # Undefined! Adding integers and strings is meaningless.Traceback (most recent call last):  File "", line 5, in ?TypeError: unsupported operand type(s) for +: 'int' and 'str'

但是在PHP中,规则对可接受的内容要宽松得多。因此,它被认为比某些其他语言更弱类型。

$x = 1 + "1"; // x is 2

[*]从技术上讲,从C#4开始,由于使用了

dynamic
关键字,C#是静态类型的,但是在每个绑定的基础上可以选择启用动态类型。如今,许多语言都在增加动态功能并模糊了界限,因此越来越难说“语言X是动态的”和“语言Y是静态的”。它不是二进制属性,而是更多的是滑动标度或频谱。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404531.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号