当前位置: 首页 > 后端技术 > Python

编写高质量的Python程序(一)基本指南

时间:2023-03-26 12:22:41 Python

本系列文章是对《编写高质量代码——改善Python程序的91个建议》精华的总结。了解Pythonic概念什么是Pythonic?Pythonic代码是具有独特Pythonic风格的代码。通俗地说,就是在保证代码可读性的前提下,尽可能简洁优雅,看起来像伪代码。使用Python代码样式交换两个变量的示例。在其他语言中交换两个变量时,一般需要一个临时的中间变量,而在Python中,直接一行代码就可以交换。for循环直接遍历容器。其他语言需要根据索引下标i遍历容器,而Python可以使用for循环直接遍历容器。使用str.format()格式化字符串是格式化字符串的最Pythonic方式。#交换两个变量a,b=b,a#forloopthroughthecontainerforeleminalist:do_sth_with(elem)#formatformatstringprint("{greet}from{language}!".format(greet="hello,world!",language="Python"))Python库和框架:已有的框架就像已有的“轮子”,学会使用这些框架,不要重新发明轮子。编写Pythonic代码并注意避免什么:避免仅使用大小写来区分不同的对象。避免混淆名称。不要害怕长变量名。能够清楚地表达变量所代表的意义就足够了。深入理解Pythonic的几种方法:学习语言特性和库特性时,从官方文档入手,按照他们的书写规范。Python版本更新快,跟进前言,掌握新特性。学习业界公认的Pythonic代码,如Flask、gevent、requests等。了解Python和C语言“缩进”和“{}”的区别:C语言使用花括号{}来分隔代码块,Python使用缩进来单独的块,避免混用空格和Tab键。'和":在C语言中,单引号'表示单个字符数据(char),双引号"表示字符串,默认以\0结尾;在Python中,'和"没有明显区别。三元运算符?::C语言中的三元运算符C?X:Y的意思是当条件C为True时,取值X,否则取值Y。Python中的等价形式是XifCelseY。switch...case:C语言中的switch...case分支语句可以用Python中的if...elif...else...代替。给代码添加注释Python中的注释有3种形式:块注释、行注释、文档注释(dostring)需要注意:使用块注释或行注释时,只注释那些复杂的操作、算法、难的一目了然的代码看不懂。注释和代码之间有一定的距离。x=x+1#这种注释稍微接近x=x+1#更好的注释位置为外部可访问的函数或方法添加文档注释。描述它的功能、参数、返回值和可能的异常。例如:defget_lines(name,lines):"""返回以name开头的行。行应该看起来像:name:spaceseparatedvaluesArgs:name:string,parametername.lines:iterableofstring,linesinthefile.Returns:Listofvaluesinthelinesthatmatch."""retval=[]matches=itertools.ifilter(lambdax:x.startswith(name+":"),lines)forlineinmatches:retval.extend(line[len(name)+1:].split())returnretval建议在文件头包含版权声明、模块描述,必要时还包含作者信息。例如:#!/usr/bin/python#-*-coding:utf-8-*-##Copyright2014GoogleInc.AllRightsReserved.##根据Apache许可证2.0版(“许可证”)获得许可;#你可能不会...更新代码后,注释应该和代码同步更新。在实际工作中,很容易迭代代码而忘记更新注释,所以需要小心。适当加入空行,使代码布局更加优雅合理。一组代码表达一个完整的想法后,用空行分隔。保持上下文语义易于理解。当一个函数调用另一个函数时,尽量把它们放在一起,一般调用者在上,被调用者在下。defA():B()defB():使用二元运算符传递空格(赋值=,比较(==,<,>,!=,<=,>=,in,notin,is,isnot),布尔运算(和、或、非))。如x==1不要在逗号和分号前使用空格。函数名和左括号之间不需要空格,序列索引操作时序列名和[]之间不需要空格,函数参数=两边不需要空格。编写函数的4个原则函数设计要尽可能短,嵌套层次不要太深。函数声明应该合理、简单、易用。在设计函数参数时,应考虑向后兼容性(与以前版本的兼容性)。一个函数只做一件事(解耦)。参考:《编写高质量代码——改善Python程序的91个建议》本文由博客群发、多发等运营工具平台OpenWrite发布。