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

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

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是静态的”。它不是二进制属性,而是更多的是滑动标度或频谱。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5013887.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存