这样说吧:如果遵循了这8种超棒的Python编程实践,那么你就摸准了Python小机关,保证了顺利地做事的基本指导。
前言
当你正在开发的程序出现错误时,通常很容易判断。比如不知道从哪里冒出来的bug,像烂泥一样运行的代码,笨拙的项目结构,这仅只是三个暴露问题的迹象。但有时候,要判断自己做得是否正确却不是那么容易。良好的编程习惯就像电影中最好的特效:你永远不会注意到它们的存在,因为它们从不公开宣告自己的存在。
那么在Python中又有哪些标志是体现好的编程实践呢?如果您是这门语言的新手,并且您对良好的Python开发行为可能有一些了解,或者您只是想知道您已经养成的一些习惯是否值得保留,那么我们为您收集了一组指导方针。如果您遵循下面列出的 **8个最佳实践准则 **,那么您的Python编程基本有保障了——已开启了正确的基本模式。
1.使用虚拟环境和项目管理工具
即使是小型的、一次性的Python项目也可以通过虚拟环境和适当的项目结构从中受益。像 **Poetry **这样的工具使安装过程几乎是自动的。即使是较低的venv也可以相对直接地用虚拟环境来组建您的项目,并从中获益。
版本控制是另一个重要的项目管理工具。如今,这通常意味着Git。即使对于简单的单文件项目,也可以利用Git。您永远不知道需要回滚到某个东西的早期版本会在什么时候。大多数支持Python的ide还内置了对venv和Git的支持,因此使用它们很容易。
2.使用Python内建函数,而不重新发明轮子
精明的Python程序员都知道利用Python的 **内置函数 **和 **标准库 **来处理绝大多数常见用例。大多数你需要完成的例行任务——文件操作、正则表达式、使用web浏览器等等——都已经在Python中有相应交互支持实现。
经验较少的Python开发人员常问的一个问题是,我如何知道标准库中的内容是否涵盖了我的用例,而不必记住那些内容?简单的答案是将标准库索引和内置函数概览页面添加为书签,并在遇到“日常编程”之类的问题时浏览它们。不断接触查看Python中可用的工具,这本身就是一个强大的老师。
3.使用工作所需的正确模块
与内置函数和标准库一样,使用Python的庞大的第三方模块集合是一种节省劳力的方法。通过PyPI的web前端为您的问题启动一个搜索词,您几乎总会找到开箱即用解决方案的模块。同样,当您可以找到并通过pip安装它时,为什么要重新发明(Python)轮子呢?另外,许多Python模块具有 C语言 加速的性能,这意味着当使用其他模块时,您可以获得更快的开发速度和更快的程序执行速度。
一个经常出现的问题是:如果处理用例场景有多个模块可用,我应该使用哪一个?简单的答案是,从使用最多或势头最大的项目开始(例如,GitHub stars或forks所显示的),因为您的用例很有可能与许多其他人的用例相同。
4.OOP不会让你发疯
面向对象编程(OOP)将数据结构与用于操作它们的方法捆绑在一起,使编写高级代码变得更容易。对于像Python这样的高级语言,OOP非常适合。但并不是所有的Python代码都需要是面向对象的。熟悉Python的开发人员知道,与面向对象的替代方法相比,20行(甚至200行)“一步到位”(get-it-done-and-get-on-with-it)的代码可以节省宝贵的时间,如有选择就不要用OOP方法。总的来说,大型和复杂的项目确实从面向对象中受益,但是除非项目需要面向对象,否则可以放宽规则。
5.保持测试代码为标准行为
说到在更大的项目中完成的事情,明智的python开发者知道创建测试套件的价值。尽管编写测试很乏味,但当项目发展到一定程度的复杂性时,它们是无价的。更高级的掌握能力的一个标志是,与每个新特性并行构建相应测试,而不是事后构建。实际上,越早克服编写测试的困难,就越早开始改进代码。从实现第一个特性就开启测试,您会得意地感觉自己编程工作溜溜的。
6.算了吧,就不要用python 2
把Python2遗忘在历史中吧,去年是这样,现在更是如此。Python 2已经运行了很长时间,但是它现在完全不受官方Python开发团队的支持。明智的Pythonistas已经将他们的项目迁移到python3,或者现在正在这样做。
7.也不要使用最新版本的Python
Python 3.8可能是Python的最新和“最棒”的版本,但这并不意味着您必须使用它。事实上,聪明的软件开发人员明白,使用任何东西的最新版本都是碰运气。Python也不例外。作为一位精明的Python程序员,要坚持在最新得到最广泛采用前,使用其之前版本,以确保与第三方模块最广泛的兼容性。毕竟,利用所有已存在的这些有用模块的能力是使用Python的首要原因之一。
8.酌情使用其他的 编程语言
几乎在所有方面Python都被描述为“第二好的编程语言”——有时最好和第二好的之间的差距的确很大。但是作为一名明智的Python开发人员应该知道:在众多工具中Python也只是其中的一种,应该始终利用正确的工具来完成手头的工作。
对于需要最大运行速度的应用程序或操作,您可能不希望使用纯Python,而是C或Rust,甚至Go,只要能把他玩转。但并非所有性能密集型编程都意味着完全将Python放弃。也许它仅仅意味着使用像Numpy或Pandas这样的基于C语言的库,或者在Python shell中包装C语言或兼容C语言的代码,或者使 用Cython将Python转换为C语言 。
9.小结
本文简单谈了下Python编程使用的8个正确行为和态度,对照一下自己是否有需要改进的地方呢。或者你有什么想法,分享出来吧。
网友评论