【发布时间】:2010-09-24 14:55:51
【问题描述】:
我是一名长期的 C++/Java 开发人员,试图进入 Python 并正在寻找陈规定型的“C++ 开发人员的 Python”一文,但一无所获。我已经在 C#、Java 等方面看到过这类东西,它们对于加快语言特性和值得注意的差异非常有用。谁有参考资料?
作为第二个额外的问题,您建议使用哪种开源 Python 程序来进行简洁的设计、评论和使用该语言作为研究的参考点?
提前致谢。
【问题讨论】:
我是一名长期的 C++/Java 开发人员,试图进入 Python 并正在寻找陈规定型的“C++ 开发人员的 Python”一文,但一无所获。我已经在 C#、Java 等方面看到过这类东西,它们对于加快语言特性和值得注意的差异非常有用。谁有参考资料?
作为第二个额外的问题,您建议使用哪种开源 Python 程序来进行简洁的设计、评论和使用该语言作为研究的参考点?
提前致谢。
【问题讨论】:
Dive Into Python 是一本面向经验丰富的程序员的 Python 书籍。
【讨论】:
Dive Into Python 很棒,但不要忘记 PJE 的 Python Is Not Java。
【讨论】:
要学习该语言,免费和在线python tutorial 是您学习该语言并开始编写应用程序所需的全部内容。如果你想要一本书,我发现 Apress 的 Beginning Python 是一个很好的参考和教程。当然,学习一门语言最好的方法是编写代码,因此我建议您查看Boost.Python。如果您的 C++ 需要更灵活一些,Boost.Python 可以为您提供学习 Python 并获得报酬的好借口。
【讨论】:
C# 和 Java 在许多应用程序领域被视为 C++ 的更清洁替代品,因此经常会从一个“迁移”到另一个 - 这就是为什么有书籍可用。
Python 和 C++ 是非常不同的野兽,尽管它们都被认为是通用编程语言,但它们的目标是编程范围的不同端。
不要尝试用 Python 编写 C++;事实上,在编写 Python 时尽量忘记 C++。 我发现学习常见的 Python 范例和技术并将它们应用到我的 C++ 程序中要比其他方式好得多。
【讨论】:
我从来没有真正理解过“为语言 Y 开发人员提供语言 X”的方法。当我去学习语言 X 时,我想学习如何像语言 X 程序员那样编程,而不是像语言 Y 程序员那样。我想学习我正在学习的语言所特有的特征、习语等。我希望能够利用使语言变得特别的东西,并利用这些知识来扩展我的思维方式和解决问题的方式。我认为我不会从以另一种语言为框架的教程中获得同样的见解。如果你可以在没有针对你已经知道的东西的教程的情况下学习你的第一语言,那么你应该能够以同样的方式学习第二语言(根据我的经验,你知道的语言越多,学习新语言就越容易)。
话虽如此,我会推荐The Python Tutorial 作为一个很好、快速和简单的方式来使用Python,Dive Into Python 作为一个更完整的介绍,也可以免费获得here。我也同意其他人所说的将标准库的代码视为良好示例和设计实践的来源,标准 python 库非常干净且易于阅读。
【讨论】:
Python 与 C++ 有很大不同,因此特定知识通常无法转移。有几个language comparisons 可用。您可以继承的是特定 API 的知识,例如POSIX 或套接字 API。
作为典型 Python (GUI) 应用程序的示例,请查看 IDLE(为 Python 提供的)。
【讨论】:
通过阅读 Python 附带的标准库的源代码,我学到了很多关于 Python 的知识。我似乎记得有几个“啊哈!”尤其是阅读urllib2.py 的时刻。
【讨论】:
对于一种语言的最佳代码示例,该语言的标准库通常是一个不错的选择。不过,请选择最近的一篇 - 旧部分可能是为旧版本编写的,有时也是在库变得足够大以支持大标准之前编写的 - 例如 PHP 和 Erlang 的库,它们内部不一致。
特别是对于 Python,Python 3000 正在清理大量的库,因此可能是优秀 Python 代码的重要来源(尽管它是为未来的 Python 版本编写的)。
【讨论】: