Python for C++开发者

60
我是一名长期从事C++ / Java开发的人,现在想学习Python,并正在寻找“针对C ++开发者的Python”文章,但一直没有找到。我看过这些文章的C#,Java等版本,它们对于了解语言特性和值得注意的差异非常有用。有没有参考资料呢?
另外一个问题是,您推荐哪个开源Python程序具有清晰的设计,注释和使用语言作为研究参考点?
提前感谢您的回答!
8个回答

24
我从未真正理解“针对语言Y开发人员的语言X”方法。当我想要学习语言X时,我希望了解使用该语言的程序员编程方式,而不是使用语言Y程序员的方式。我想学习该语言独有的特性、习惯用法等等。我想利用这些知识来扩展我的思维方式和解决问题的能力。我认为如果教程是以另一种语言为背景来构建的,我可能无法获得同样的洞察力。如果你可以在没有面向已知语言的教程的情况下学会第一门语言,那么你应该可以以同样的方式学习第二门语言(根据我的经验,你掌握的语言越多,学习新语言就越容易)。
话虽如此,我推荐Python教程作为入门Python的好方法,它快速简便。Dive into Python也是一份更全面的介绍,同样可以免费获取这里。我也同意其他人提到的查看标准库代码作为优秀示例和设计实践的来源,标准Python库非常干净易读。

67
我同意,习语和特性很重要。但是我并不是新手程序员,所以很多教程会让我感到厌倦,因为它们要在揭示“它可以遍历列表结构”之前把“这是一个for循环”的概念反复强调。 - Stefan Mai
40
我认为指出C++程序员可能会犯的Python反模式并加以指出是很有益的。 - Draemon
2
@Stefan,那是一个不同的问题,我完全理解你。在这种情况下,我引用的两个资源都可以让你很快上手。 - Robert Gamble
1
Python的美妙之处在于它易于上手。然而,如果你是C++程序员,Python教程和介绍中会有很多遗漏 - 这些东西我怀疑作者根本不知道、不关心或者不理解。例如:在一个简单的类层次结构中,当我删除类的成员时,__del__会被调用。但在我正在处理的一个稍微复杂一点的类项目中,除非我强制进行垃圾回收,否则我的__del__不会被调用。不幸的是,这个类包装了一个DLL调用。你不应该需要看管RAII行为。 - kfsone
5
他最有可能的意思,我也支持这个问题,是针对有经验的程序员而非初学者的教程,因此不要涉及像“大家好,这是一个函数”的话题,而是“注意事项1:Python中substring的使用方式不同”。请注意,翻译时需使内容更通俗易懂,但不得改变原意。 - Michał Leon
显示剩余4条评论

13

5

4

通过阅读随Python一起发布的标准库源代码,我学到了很多关于Python的知识。特别是在阅读urllib2.py时,我记得有几个“恍然大悟”的时刻。


2

学习这门语言,免费在线的 python 教程 就足够让你掌握语言并开始编写应用程序。如果你想要一本书,我发现 Apress 出版社的 Beginning Python 是一本非常好的参考和教程。当然,学习一门语言最好的方法就是写代码,因此我建议你去了解一下 Boost.Python。如果你的 C++ 需要更加灵活, Boost.Python 可以给你一个很好的理由去学习 Python 并为此获得报酬。


1

Python与C ++有足够的不同,以至于通常无法转移特定知识。 有一些语言 比较可用。 您可以转移的是特定API的知识,例如POSIX或套接字API。

作为典型Python(GUI)应用程序的示例,请查看IDLE(随Python一起提供)。


1

C#和Java在许多应用领域被视为C++的更清晰替代品,因此经常会从一个迁移到另一个——这就是为什么有相关书籍的原因。

Python和C++是非常不同的语言,虽然它们都被认为是通用编程语言,但它们针对的是编程光谱的不同端点。

不要试图用Python写C++;事实上,在编写Python时,请尝试忘记C++。我发现学习常见的Python范例和技巧,并将其应用于我的C++程序比反过来要好得多。


0

要寻找一种语言的最佳代码示例,该语言的标准库通常是一个不错的选择。不过要选择最近的版本,因为旧版本可能是为老版本编写的,有时甚至是在库变得足够大以需要大型标准之前编写的,比如 PHP 和 Erlang 的库,它们存在内部不一致性。

特别是对于 Python,Python 3000 对库进行了很多清理,因此可能是一个很好的 Python 代码来源(尽管它是为未来的 Python 版本编写的)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接