python的源码值得去读吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的源码值得去读吗相关的知识,希望对你有一定的参考价值。

python的源码值得去读!
1.无论是有没有其他语言的经验,入门Python都很简单。Python拥有简单直观的语法,方便的语法糖,以及丰富的第三方库。只要一个基础的Python教程,大家基本上都能无障碍的入门。
2.在入门之后,很多人对于进一步学习的建议都是“做项目”、“看源码”,然而这样的建议实际是较难实现的,自己执行的效率会很低。
3.对于初学者而言,Python入门很简单。入门之后只靠基础语法也完全可以做到平时写写脚本,解决自己工作、生活上的重复性劳动。想要什么功能,基本上都能找到方便的库。在只求应用,不求理解的情况下,很快就能实现日常表格处理、文件下载、邮件发送等功能。甚至像图像处理、OCR这样“高端”的功能也有对应的工具库可以使用。
4.但是做到这种程度只是小打小闹,想要真正的在开发工作中使用Python语言,或者是在GitHub上贡献开源代码,都是远远不够的。这时候,初学者的常见问题主要集中在以下四点:
4.1学会了语法,但是不会应用。
仍然是用其他语言的逻辑在写Python代码,不是Pythonic的代码。
4.2Python项目结构不合理。
缺少对更深入主题的研究,例如装饰器、异常处理、多进程多线程、设计模式等。
5.传统建议的解决方案
5.1对于初学者而言,应聘到一个使用Python语言做开发的团队显然是不现实的。那么基本上项目的来源就是自己找的练手课题或者在GitHub上参与开源项目。
5.2自己找个项目进行练手可以说是效果最差的方式了。它实际上还是摸着石头过河,接触不到优秀的源码和实现方法,也没有人指导。最终也只是实现了功能而已,不论是代码设计还是项目结构,都是闭门造车,提升有限。最大的作用也就是提高对语法、基本数据结构和标准库的熟练程度。
参考技术A 除了C/C++的源代码,没有任何源代码是值得去阅读的。
Python包具体来说应该分成两类,一类叫纯Python包,就是这个包只包含Python代码,或者调用了其他Python包的代码,比如用Tensorflow搭起来的一个模型作为一个包供别人使用。还有一类是披着Python外衣的C/C++,这一类很多,如numpy、tensorflow,目前也有人用Rust写这类包。
第一类包,可以说几乎没有读的必要性。除非是非常非常巧妙的包(我想不出来有哪些),否则就没有读源码的价值。因为这种包真正的价值在于算法,而不是实现。剥掉编程语言的外衣,真正的核心是算法,去读源码不如读论文。
第二类包,这种包往往对性能有这很高的要求,所以一般会使用C/C++编写核心功能,再编写一个借口给Python调用,实际上真正跑的是C/C++。这种包去看Python源代码更没有意义了,因为核心全在C/C++里。此外,这也是一个趋势,将性能要求高的部分用C/C++写,性能要求低的部分用Python写。

但是,C/C++源码还是有读的必要性的,因为一个性能优异的C/C++程序往往会有很强的优化在其中,一方面读这些代码可以学习一些技巧,另一方面也可以学习一些数据结构与算法的知识,因此还是有必要的。

不顾,剥开语言的外衣,真正的核心是算法,去读论文理解算法或许比读源代码更有意义。Python、Perl、R都是一样的。
参考技术B Python的源码非常值得去读,因为它可以帮助你更好地理解Python语言的本质,以及如何实现Python的底层机制。读源码还可以帮助你更好地理解Python核心库和第三方库的工作原理,并且可以学习到一些Python的高级技巧,比如如何优化Python代码的性能等等。 参考技术C 读取 Python 的源码可以帮助您更好地理解 Python 的工作原理,从而增强对 Python 语言的理解。因此,非常值得去读取 Python 的源码。

初级的开发工程师,值得去读的几本书

  1. 《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明
  2. 《Java多线程编程核心技术》作者高洪岩
  3. 《Effective Java中文版》的作者是Joshua Bloch
  4. 《大型网站技术架构 核心原理与案例分析》的作者是李智慧
  5. 《从Paxos到ZooKeeper 分布式一致性原理与实践》,作者倪超,阿里巴巴工程师
  6. 《Spring源码深度解析》,作者郝佳。

以上是关于python的源码值得去读吗的主要内容,如果未能解决你的问题,请参考以下文章

收藏的书录,值得花时间去读的书

iOS那些值得参考的App项目源码

推荐这9个 Python 初学者网站值得收藏

GitHub 上值得参考的完整的 iOS-App 源码

REDIS源码中一些值得学习的技术细节02

GitHub 上有哪些完整的 iOS-App 源码值得参考?