首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何写出更pythonic的代码(一)

前言

为什么要写这篇看起来不是什么技术活的文章?你可能会有这样的疑问

别急,先来看看几张代码图

图一

图二

看到这频繁出现的波浪线了吗,还有右侧栏的好几个黄条,可能是我有点强迫症…总之是越看越觉得看不下去

事实上还有比这更那啥的,全是波浪线…咳咳

相信大家刚接触Python的时候应该都看到过这篇 “Python之禅”

Python之禅

而本文的目的就是希望我们的代码能够更加简洁、高效,来看看另一张代码图

图三

图四

看到右上角的小绿√ 了没,这意味你的代码已经符合了基本的Python开源代码风格规范,这样一来不仅仅是我们自己看起来舒服多了,当别人在浏览你的代码的时候也会觉得干净易读!

进入正题

下面我们从格式入手到更加pythonic的语法来让你的代码变得更加优雅

格式方面需要注意的大概有以下几点

空行

顶级定义之间空两行, 比如函数或者类定义;

方法定义, 类定义与第一个方法之间, 都应该空一行;

函数或方法中, 某些地方要是你觉得合适, 就空一行;

的包的最后一行与接下来的主要代码间正常需要间隔两行

主要代码部分与 之间正常也需要间隔两行

类中的方法之间需要间隔为一行

空格

括号内不要有空格;

不要在逗号, 分号, 冒号前面加空格, 但应该在它们后面加(除了在行尾);

在二元操作符两边都加上一个空格, 比如赋值(=), 比较(==, , !=, , =, in, not in, is, is not), 布尔(and, or, not). 至于算术操作符两边的空格该如何使用, 需要你自己好好判断. 不过两侧务必要保持一致.

当’=’用于指示关键字参数或默认参数值时, 不要在其两侧使用空格.

行长度

每行不超过80个字符

例外:

长的导入模块语句

注释里的URL

不要使用反斜杠连接行.

Python会将 圆括号, 中括号和花括号中的行隐式的连接起来 , 你可以利用这个特点. 如果需要, 你可以在表达式外围增加一对额外的圆括号.

如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接:

缩进

用4个空格来缩进代码

注释

确保对模块, 函数, 方法和行内注释使用正确的风格

文档注释应该用

块注释和行注释

导入格式

每个导入应该独占一行

main

即使是一个打算被用作脚本的文件, 也应该是可导入的. 并且简单的导入不应该导致这个脚本的主功能(main functionality)被执行, 这是一种副作用. 主功能应该放在一个main()函数中.

在Python中, pydoc以及单元测试要求模块必须是可导入的. 你的代码应该在执行主程序前总是检查 , 这样当模块被导入时主程序就不会被执行.

最后

格式风格部分先介绍到这里,还有比较详细的规范可以参考这里

Google开源项目风格指南 - Python风格规范

https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181228G1KAHA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券