知乎上有个问题,关于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使用 try
和 except
块来处理异常。Java使用 try
和 catch
块,并且必须捕获所有可能的异常。
这是python和Java在语言特性上的差异,没有好坏之分,只有应用场景之别。
python是动态语言,追求简单方便易懂,适合写脚本快速开发,java是静态语言,追求稳定安全快速,适合写网站软件。
所以啊,如果你的需求是写算法、写爬虫,处理数据,就去用python,如果是写网站、写游戏,就去用Java ,讨论谁好谁差,实在没有意义。