当前位置: 首页 > 面试题库 >

Java-> Python?

王棋
2023-03-14
问题内容

除了Python(和语法)的动态特性外,Java没有Python语言的一些主要功能,反之亦然?


问题答案:
  1. 列表理解。我经常发现自己在过滤/映射列表,并且能够说[line.replace("spam","eggs") for line in open("somefile.txt") if line.startswith("nee")]真的很好。

  2. 函数是一流的对象。它们可以作为参数传递给其他函数,可以在其他函数中定义,并且具有词法范围。这使得说类似people.sort(key=lambda p: p.age)这样的事情变得非常容易,从而可以按年龄分类一群人,而不必定义自定义比较器类或同样冗长的内容。

  3. 一切都是对象。Java具有不是对象的基本类型,这就是为什么标准库中的许多类都定义9个不同版本的函数的原因(对于boolean,byte,char,double,float,int,long,Object,short)。 Array.sort是一个很好的例子。自动装箱有帮助,尽管当某些东西变成空值时会使事情尴尬。

  4. 属性。Python使您可以创建具有只读字段,惰性生成的字段以及在分配时进行检查的字段,以确保它们永远不会为0或null或您要防止的任何内容,等等。

  5. 默认和关键字参数。在Java中,如果您想要一个最多可以包含5个可选参数的构造函数,则必须定义该构造函数的6个不同版本。而且根本没有话要说Student(name="Eli", age=25)

  6. 函数只能返回1件事。在Python中,您具有元组分配,因此可以这样说,spam, eggs = nee()但在Java中,您需要诉诸于可变参数或具有带有2个字段的自定义类,然后需要另外两行代码来提取这些字段。

  7. 列表和字典的内置语法。

  8. 运算符重载。

  9. 通常设计更好的库。例如,您要说用Java解析XML文档,
    Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("test.xml");
    而在Python中要说
    doc = parse("test.xml")


无论如何,我可以继续进行进一步的示例,但是Python总体上来说是一种更加灵活和富有表现力的语言。我也很喜欢它是动态键入的,但是它有一些缺点。

Java比Python具有更好的性能,并具有更好的工具支持。有时候这些事情很重要,Java比Python更好地完成一项任务。尽管我更喜欢Python,但我仍将Java用于一些新项目。但是作为一种语言,我认为Python在我发现自己需要完成的大多数事情上都是优越的。



 类似资料:
  • Java Embedded Python (Jepp) embeds CPython in Java.

  • 问题内容: 我正在寻找WhatsApp API,最好是Python或Java库。 我已经尝试过Yowsup,但是无法注册我的电话号码;我住在印度,不知道是否与印度有任何关系。 我确实尝试过WhatsAPI(Python库),但也不起作用。 有什么建议吗?这里有Yowsup的用户吗? 问题答案: 在尝试了一切之后,Yowsup库为我工作了。我所面对的错误已得到修复。任何尝试使用Whatsapp做某事

  • 问题内容: 我有一个Java应用程序,需要与第三方库集成。该库是用Python编写的,对此我没有任何发言权。我正在尝试找出与之集成的最佳方法。我正在尝试JEPP(Java嵌入式Python)-以前有人使用过吗?我的另一个想法是使用JNI与Python的C绑定进行通信。 任何有关最佳方法的想法都将不胜感激。谢谢。 问题答案: 为什么不使用Jython?我唯一能想到的缺点就是你的库是否使用CPytho

  • 在完成一个模块后,应该从那几个方面对代码进行优化,有哪些方法可以进行优化

  • 问题内容: 从python调用Java的最佳方法是什么?(对我来说,jython和RPC不是一个选择)。 我听说过JCC:http : //pypi.python.org/pypi/JCC/1.9 一个用于从C / Python调用Java的C 代码生成器,但这需要编译所有可能的调用。我希望有另一个解决方案。 我听说过JPype:http ://jpype.sourceforge.net/ 教程:

  • 我需要从Java中调用一些Python代码。 我知道Jython存在,或者Java有自己的Python解释器。 问题是,所说的Python代码使用一些本机(C)编译代码,甚至在GPU上运行一些东西。 所以我可以把它分为两个问题: < Li > Jython或Java的Python解释器支持这个吗?也就是说,Python代码(当从Java调用时)将与所有的C和GPU部分一起运行,因此运行速度将与它独