在本文中,将介绍下如何编写干净的python 代码,这些技巧中的大多数也可以用于任何语言,但在进入主题之前,建议大家先去试运行下以下命令,就是在python交互模式导入this,然后就会展示以下内容,当然运行的时候会显示英文的,这是翻译的中文版本:
importthis
Python之禅,蒂姆·彼得斯 (TimPeters)美丽总比丑陋好。显式优于隐式。简单胜于复杂。复杂胜于复杂。平面优于嵌套。稀疏比密集好。可读性很重要。特殊情况不足以打破规则。虽然实用胜过纯洁。错误永远不应该悄无声息地过去。除非明确沉默。面对模棱两可,拒绝猜测的诱惑。应该有一种——最好只有一种——明显的方法来做到这一点。虽然这种方式一开始可能并不明显,除非你是荷兰人。现在总比没有好。虽然从来没有现在通常比*right*更好。如果实现很难解释,那是个坏主意。如果实现很容易解释,那可能是个好主意。命名空间是一个很棒的想法——让我们做更多的事情!
以上就是开场,因为这是本篇的主旨,以下具体几个方面谈一下如何编写更可读的代码
使用适当的间距
与其他编程语言不同,python 中的间距非常重要,因此更加严格, 但这并不意味着你没有一些自由:在这种情况下,间距意味着行之间的空间, 尝试用一两个空行分隔每个函数,以及每个代码块, 你甚至可以在不相关的代码部分之间添加更多行,例如,不建议这样写:
fromflaskimportFlask, render_templateapp=Flask(__name__)@app.route("/")defhome(): returnrender_template("index.html")@app.route("/page2.html")defpg2():returnrender_template("page2.html")if__name__=="__main__": app.run(host='0.0.0.0', debug=True, port=3134)
可以这样:
fromflaskimportFlask, render_templateapp=Flask(__name__)@app.route("/")defhome(): returnrender_template("index.html")@app.route("/page2.html")defpg2():returnrender_template("page2.html")if__name__=="__main__":app.run(host='0.0.0.0', debug=True, port=3134)
好的,这可能很明显,但不要忘记它。
你的代码应该有一个顺序
首先,导入所有库,然后,创建变量和常量, 之后,创建你的类和函数, 只有这样,使用所有这些现有的对象来完成你想做的任何事情,如果你想编写更好的代码,请在你可以使用 if __name__ == “__main__”语句调用的 main() 函数中运行所有内容, 以下是这样的结构可能的样子:
importlibrary1importlibrary2X_SIZE=700Y_SIZE=400COLOR1= (0, 0, 0)COLOR2= (255, 255, 0)COLOR3= (0, 255, 127)variable1=0variable2=Truedeffunction1(...):...deffunction2(...):...defmain():# 调用写在这里if__name__==“__main__”: main()
附带说明一下,常量通常用大写字母和下划线书写,而变量则用小写字母书写。
正确记录你的代码
你的变量应该不言自明不要将变量命名为 x、var1 或 thing, 相反,根据它包含的内容命名它,例如 winHeightX、n_attemps、message 等...最重要的是,你知道你可以在 python 中使用冒号指定变量的类型:
int_variable: int=10text: str="hello!"
举一个愚蠢的例子,哪个写法会给代码的读者更多的上下文?
x=11800000或者
ohio_population: int=11800000#你甚至可以下划线使你的整数更具可读性ohio_population: int=11_800_000
给你的代码添加注释
这个不言自明,但不要忽视它,你写评论不仅是为了让其他人阅读你的代码,而且是为了在接触一段代码几天后回到自己的代码,这个很重要,不然你自己可能都认不得你写的代码。
使用导入库的名称
这个意思是,不要使用:
fromlibraryimport*可以这样
importlibrary#或importlibraryaslib
这应该是常见的做法,你想知道你的变量和函数来自哪里, 最重要的是,python 开发人员对一些库采用了“标准”命名,因此使用它们也会自动使你的代码更易于理解,例如:
importnumpyasnpimportpandasaspdimportmatplotlib.pyplotasplt
最后建议:不要让一个函数做所有事情
这是最后一个小技巧:使用多个较小的函数而不是一个可以做所有事情的大函数, 你的代码应该逐块构建, 此外,通过正确命名和注释每个函数,你的代码将更加易于理解,并且你将更容易实现它。
原文:https://www.raaicode.com/how-to-write-cleaner-python/
长按或扫描下方二维码,免费获取 Python公开课和大佬打包整理的几百G的学习资料,内容包含但不限于Python电子书、教程、项目接单、源码等等 推荐阅读
点击 阅读原文 了解更多