Python为什么要len(array),而不是像Java一样array.size()?

知乎上有个问题,关于Python和Java语法的对比,同样是计算数组长度,为什么Python使用len(array),属于内置函数,而Java则用array.size(),属于类方法。

Python中len()函数不仅可以计算array的长度,还可以计算元组、集合、字符串、字典等任何可迭代对象的长度。

这样的好处是不同的对象计算长度,你不需要每次调用不同的对象方法来实现。

此类的函数还有很多,比如排序函数sorted(),类型函数type(),位数函数round(),打印函数print()等,和len()一样,这些都是python的内置函数。

之所以没有像Java array对象将size设置为类方法,因为python语言特性就是要追求简洁性和一致性,能一种方法搞定的绝不多费功夫,哪怕牺牲一点安全性。

当然,python也是面向对象的编程语言,有类属性和方法,大部分的对象操作都是通过类属性和方法来实现,但对于一些常见的、通用的、普遍的操作会使用内置函数来解决。

如果你用过这两种语言,会发现差异不仅在于内置函数和对象方法之分,还有很多不同。

比如类型声明,python不需要指定类型,java必须要指定。

比如代码块,python用缩进表示代码块,java用{}表示代码块。

比如异常处理,Python使用 tryexcept 块来处理异常。Java使用 trycatch 块,并且必须捕获所有可能的异常。

这是python和Java在语言特性上的差异,没有好坏之分,只有应用场景之别。

python是动态语言,追求简单方便易懂,适合写脚本快速开发,java是静态语言,追求稳定安全快速,适合写网站软件。

所以啊,如果你的需求是写算法、写爬虫,处理数据,就去用python,如果是写网站、写游戏,就去用Java ,讨论谁好谁差,实在没有意义。