【发布时间】:2011-01-21 07:33:20
【问题描述】:
我的大部分编程背景都在 Java 中,而且我仍然在使用 Java 进行大部分编程。但是,我开始为一些工作中的副项目学习 Python,我想尽可能独立于我的 Java 背景来学习它——即我不想只用 Python 编写 Java。我应该注意哪些事项?
一个简单的示例 - 在查看 Python 教程时,我发现函数(例如列表)的默认可变参数是持久化的(从调用到调用都会记住)。作为一名 Java 程序员,这对我来说是违反直觉的,而且我很难理解。 (如果您不理解该示例,请参阅 here 和 here。)
有人还向我提供了this 列表,我觉得这很有帮助,但很简短。任何人都有任何其他关于 Java 程序员可能倾向于滥用 Python 的例子......?还是 Java 程序员会错误地假设或难以理解的事情?
编辑:好的,简要概述我链接到的文章中提到的原因,以防止答案重复(如 Bill the Lizard 所建议)。 (如果我在措辞上有错误,请告诉我,我只是刚刚开始使用 Python,所以我可能无法完全理解所有概念。并且免责声明 - 这些将是 非常简短,所以如果你不明白它的内容,请查看链接。)
- Java 中的静态方法不会转换为 Python 类方法
- Java 中的 switch 语句转换为 Python 中的哈希表
- 不要使用 XML
- getter 和 setter 是邪恶的(嘿,我只是在引用 :))
- 代码重复在 Java 中通常是一种必要的弊端(例如方法重载),但在 Python 中则不然
(如果您觉得这个问题很有趣,请查看链接。:) 非常好。)
【问题讨论】:
-
好问题。您在上一段中链接到的文章是一个非常好的开始。您可能会考虑提取那里给出的要点的(非常简短的)摘要,这样人们就不会在答案中重复相同的列表。 (我几乎贴出了文章中的一个观点。)
-
@Bill the Lizard - 已更新,感谢您的建议。只是出于好奇-您要发布哪一点? :)
-
另外,请将其设为社区 Wiki。没有“答案”,只有很多建议。
-
我打算发布“Getter 和 setter 是邪恶的”。在这一点上,两种语言之间存在着昼夜差异。它们可能是发现正在使用 Python 编写 Java 的人的最简单方法。