前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python90-2 遵循PEP 8 建议

Python90-2 遵循PEP 8 建议

作者头像
一只大鸽子
发布2022-12-06 09:24:34
2990
发布2022-12-06 09:24:34
举报

第2条:遵循PEP 8 建议

Item 2: Follow the PEP 8 Style Guide

PEP 8,全称Python Enhancement Proposal #8(Python增强建议),是标准化Python代码风格的指南。

从程序运行的角度,你可以用任何风格写Python,只要没有语法错误。但是使用一致的代码风格,可以使代码可读性更高。使用规范的代码风格会方便他人阅读你的代码,也能帮助你在之后修改代码,以及避免许多常见错误。PEP 8 提供了如何写干净的Python代码的丰富细节。随着Python发展它也在不断更新。可以在网上阅读:PEP 8 – Style Guide for Python Code | peps.python.org

小提示:很多开发环境提供了提供了PEP 8格式化工具。PyCharm中reformate快捷键ctrl+alt+enterPylint 工具是一个流行的静态Python代码分析工具。

下面是PEP8中常用的一些建议:

空格 White Space

Python中空格是一种语法,通过空格表示代码层级(for、if和def等)。下面是和空格有关的建议:

  • • 使用空格而不是table进行缩进(indentation)。
  • 4空格缩进表示不同代码级别。
  • • 每行不超过79个字符。
  • • 长表达式延续到另一行时应该有4空格的额外缩进。
  • 函数之间应该用2空行隔开。
  • 类中方法应该用1空行隔开。
  • • 字典中,key和冒号之间不要空格,在value前放1个空格。{key: value}
  • • 赋值时,=运算符前后1个空格。a = 42
  • • 对于类型注解(type annotations),变量名和冒号间没有空格,类型信息前1个空格。count: int = 10

命名 Naming

PEP 8给出一系列命名建议,有助于根据名字区分类型。

  • • 函数,变量和属性: lowercase_underscore
  • • 保护(Protected)实例属性: _leading_underscore
  • • 私有(Private)实例属性: __double_leading_underscore
  • • 类(Classes): CapitalizedWord
  • • 模块级别常量(Module-level constants): ALL_CAPS
  • • 实例方法: 第一个参数命名为self,表示实例本身
  • • 类方法: 第一个参数为cls,表示类本身

表达式和语句 Expressions and Statements

Python之禅写到:“应该有一种,且最好是唯一的方法去实现” PEP 8尝试在表达式和语句中遵循该风格。

  • • 使用内部否定(if a is not b)而不是外否定(if not a is b)
  • 不要使用长度==0(if len(somelist) == 0)的方式判断容器或序列为空,而是使用if not somelist,并且假定空值隐式地为False。类似地,判断容器或序列非空应该用if somelist,对非空值隐式地为True
  • • 避免把if,for,whileexcept语句都挤在一行,将他们分成多行会更清楚。
  • • 如果表达式不能放进一行,用圆括号包围它,加换行并且缩进使其易读。
  • • 尽量使用带括号的多行表达式而不是用\连续字符。

Imports

  • • 在文件最上方进行import
  • • 用全称引入模块。例如,引入bar包中的foo模块,应该使用from bar import foo,而不是import foo
  • • 如果一定要相对引入(relative imports),使用显式的语法from . import foo
  • • 分部分引入,标准库、第三方、自己的模块。每部分按字母顺序。

Things to Remember

  • • 遵循PEP 8
  • • 风格统一有利于交流
  • • 风格统一有利于自己修改代码
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一只大鸽子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第2条:遵循PEP 8 建议
  • Item 2: Follow the PEP 8 Style Guide
  • 空格 White Space
  • 命名 Naming
  • 表达式和语句 Expressions and Statements
  • Imports
  • Things to Remember
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档