玩转Python的8个正确的基本姿态

这样说吧:如果遵循了这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个正确行为和态度,对照一下自己是否有需要改进的地方呢。或者你有什么想法,分享出来吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • 想学习Python 加群:778570108 教学视频分享和在线课堂,专业讲学。 人生苦短,很高兴你选择了pyth...
    志者不俗阅读 342评论 0 0
  • 夜莺2517阅读 127,695评论 1 9
  • 版本:ios 1.2.1 亮点: 1.app角标可以实时更新天气温度或选择空气质量,建议处女座就不要选了,不然老想...
    我就是沉沉阅读 6,863评论 1 6
  • 我是一名过去式的高三狗,很可悲,在这三年里我没有恋爱,看着同龄的小伙伴们一对儿一对儿的,我的心不好受。怎么说呢,高...
    小娘纸阅读 3,368评论 4 7
  • 这些日子就像是一天一天在倒计时 一想到他走了 心里就是说不出的滋味 从几个月前认识他开始 就意识到终究会发生的 只...
    栗子a阅读 1,610评论 1 3