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

作为学习Python的Java程序员,我应该注意什么?

汪泓
2023-03-14
问题内容

我的大部分编程背景是Java,并且我仍在使用Java进行大多数编程。但是,我开始在工作中的一些辅助项目中学习Python,并且希望尽可能独立于Java背景学习它-即,我不想只用Python编程Java。我应该注意些什么?

一个简单的例子-
浏览Python教程时,我发现一个事实:函数(例如列表)的默认可变参数得以保留(每次调用都记住)。这对我作为Java程序员来说是违反直觉的,并且很难理解。

有人也向我提供了此列表,我发现它很有帮助,但简短。任何人都有其他例子,说明Java程序员可能会倾向于滥用Python
…?还是Java程序员会错误地假设或难以理解?

编辑 :好的,简要概述了我链接到的文章所涉及的原因,以防止答案重复(如蜥蜴人Bill所建议)。(请告诉我,如果我在措词上犯了一个错误,我只是
开始使用Python,所以我可能不会完全理解所有概念。免责声明-这些内容将 非常 简短,因此如果您不理解,请查看链接。)

  • Java中的静态方法不会转换为Python类方法
  • Java中的switch语句转换为Python中的哈希表
  • 不要使用XML
  • Getter和Setter是邪恶的(嘿,我只是引用:))
  • 代码重复在Java中通常是必不可少的(例如方法重载),而在Python中则不是。

(如果您觉得这个问题很有趣,无论如何请查看链接。:)很好。)


问题答案:
  • 不要把所有的东西都放在课堂上 。Python的内置列表和词典将带您进一步。
  • 不必担心每个模块只保留一个类 。按目的而不是按类别划分模块。
  • 对行为使用继承,而不是接口 。不要为要继承的“ Dog”和“ Cat”创建“ Animal”类,那样您就可以使用通用的“ make_sound”方法。

只是这样做:

class Dog(object):
    def make_sound(self):
        return "woof!"

class Cat(object):
    def make_sound(self):
        return "meow!"

class LolCat(object):
    def make_sound(self):
        return "i can has cheezburger?"


 类似资料:
  • 你现在是不是想学 Java,但又很迷茫,不知从何下手,不知道该从哪里学起,不知道需要学些什么?那么看完这篇文章你会有一种豁然开朗的感觉。 学习 Java 的第一步,就是制定自己的 Java 学习路线。对 Java 主要的重点知识归纳如下: 对于学习 JavaSE 的读者,分为 JavaSE 初级中级和高级水平,下面分别介绍达到这些水平我们需要掌握什么。 JavaSE 初级水平要求掌握计算机入门:D

  • 问题内容: 我应该在学习Android之前先学习Java还是可以同时做两件事?最好的方法是什么? 问题答案: 我绝对会首先学习Java。不要费心学习诸如servlet,Swing等之类的东西-但要学习: 核心语言 馆藏 IO 字符串处理 尝试在学习这些知识的同时 还 学习一个全新的环境,将使找出问题所在变得更加困难。 请注意,这不是特定于Android的-我总是鼓励开发人员在学习“外围”技术(例如

  • 本文向大家介绍1:为什么学习Python相关面试题,主要包含被问及1:为什么学习Python时的应答技巧和注意事项,需要的朋友参考一下  

  • 问题内容: 每个JavaScript程序员都应该具备能够说“我知道JavaScript”的东西吗? 问题答案: 不是jQuery。 不是YUI。不是(等) 框架可能很有用,但是它们经常隐藏一些关于JavaScript和DOM实际工作方式的丑陋细节。如果您的目标是能够说“我知道JavaScript”,那么在框架上投入大量时间是相反的。 以下是一些JavaScript语言功能,您应该了解这些功能在做什

  • 问题内容: 按照我的想法,当我们在应用程序中共享相同的对象状态时,我们应该将类设为Singleton。在那种情况下,我们希望用户限制每次创建一个新实例,以使他们无法维持多个状态。同意 但是,可以通过将实例变量声明为静态来实现相同的行为。在我看来,无论是还是类,它也都将达到相同的目的。 请帮助我理解以上概念,其中静态实例变量将无法解决目的,并且需要将类声明为Singleton? 编辑部分 好吧,让我

  • 对于这样一个陈词滥调的问题我很抱歉,但我真的不知道为什么我的CNN没有进步。 我正在训练一个美国有线电视新闻网的SVHN数据集(一位数)与32x32的图像。 对于预处理,我将RGB转换为灰度,并通过标准化对所有像素数据进行规格化。因此,数据范围变为(-1,1)。为了验证我的和是否正确对应,我从中随机选取了一个图像,并从中选取了一个具有相同索引的标签,这表明它们是正确的。 以下是我的代码(Keras