除了Python的动态特性(和语法)之外,还有哪些Python语言的主要特性是Java没有的,反之亦然?
发布于 2008-09-08 15:35:33
[line.replace("spam","eggs") for line in open("somefile.txt") if line.startswith("nee")]是真正的nice.people.sort(key=lambda p: p.age)这样的东西变得非常容易,因此可以根据年龄对一群人进行排序,而不必定义自定义的比较器类或类似的东西verbose.Array.sort就是一个很好的例子。自动装箱很有帮助,尽管当结果是null.Student(name="Eli", age=25)spam, eggs = nee(),但是在Java语言中,你需要求助于可变的输出参数,或者有一个带有两个字段的自定义类,然后有两行额外的代码来为列表和设计更好的库提取那些fields.Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("test.xml");
在Python中你会说
doc = parse("test.xml")
无论如何,我可以继续举更多的例子,但总的来说,Python是一种更灵活、更具表现力的语言。它也是动态类型的,我真的很喜欢,但这也有一些缺点。
Java的性能比Python好得多,而且对工具的支持也要好得多。有时这些事情很重要,对于任务来说Java是比Python更好的语言;我继续在一些新项目中使用Java,尽管我更喜欢Python。但作为一种语言,我认为Python在我发现自己需要完成的大多数事情上都更胜一筹。
发布于 2008-09-08 14:40:36
我认为Philip J.Eby的这两篇文章很好地讨论了两种语言之间的差异(主要是关于哲学/心理,而不是特定的语言特征)。
发布于 2008-09-08 14:43:09
Python中的一个关键区别是significant whitespace。这让很多人离开了很长一段时间--我也是--但一旦你开始使用它,它就会变得很自然,而且比任何地方的;都更有意义。
从个人角度来看,Python与Java相比具有以下优点:
除此之外,this page on the Python Wiki是一个很好的地方,有很多指向有趣文章的链接。
https://stackoverflow.com/questions/49824
复制相似问题