Python 开发编码规范

简介: 最近,团队又来了几个小伙伴,经过一段时间磨合之后,发现彼此之间还是比较默契的,但有一个很大的问题是,每个人的编程风格和习惯都不同,导致现在代码看起来非常混乱。所以,有一个统一的开发编码规范还是很重要的。我在网上搜索了一些资料,在 PEP8 的基础上,同时结合目前代码的特点,总结出下文,分享给大家。

最近,团队又来了几个小伙伴,经过一段时间磨合之后,发现彼此之间还是比较默契的,但有一个很大的问题是,每个人的编程风格和习惯都不同,导致现在代码看起来非常混乱。

所以,有一个统一的开发编码规范还是很重要的。我在网上搜索了一些资料,在 PEP8 的基础上,同时结合目前代码的特点,总结出下文,分享给大家。


代码布局


缩进


每个缩进级别采用 4 个空格,注意不是 Tab。

当一行超出单行最大长度时,采用 Python 隐式续行,即垂直对齐于圆括号、方括号和花括号。


例如:


# 调用函数
foo = long_function_name(var_one, var_two,
                         var_three, var_four)
# 定义列表
my_list = [
    1, 2, 3,
    4, 5, 6,
]
# 定义字典
my_dict = {
    'a': 'hello',
    'b': 'world'
}
复制代码


每行最大长度


传统来说一直都是 80,但我觉得以现在的浏览器屏宽来说,设置 120 都没问题,我设置的是 120.


二元运算符前换行


例如:


# 更容易匹配运算符与操作数
income = (gross_wages
          + taxable_interest
          + (dividends - qualified_dividends)
          - ira_deduction
          - student_loan_interest)
复制代码


空行


  • 使用 1 个空行来分隔类中的方法(method)定义。
  • 使用 2 个空行来分隔最外层的函数(function)和类(class)定义。


模块引用


Imports 应该写在代码文件的开头,并按照下面这样的顺序引用:

  1. 标准库 imports
  2. 相关第三方 imports
  3. 本地应用/库的特定 imports

禁止使用 import * 这样的方式。


模块级的双下划线命名


模块中的「双下滑线」变量,比如 __all____author____version__ 等,直接写在文件开头。


例如:


"""
This is the example module.
This module does stuff.
"""
from __future__ import barry_as_FLUFL
__all__ = ['a', 'b', 'c']
__version__ = '0.1'
__author__ = 'Cardinal Biggles'
import os
import sys
复制代码


字符串引用


使用单引号来表示字符串,对于三引号字符串,使用双引号字符表示。

例如:


# 单引号字符串
a = 'hello'
# 三引号字符串
"""
这是一个三引号字符串
"""
复制代码


表达式和语句中的空格


在下列情形中避免使用过多的空白:


1、方括号,圆括号和花括号之后:


# 正确的例子:
spam(ham[1], {eggs: 2})
# 错误的例子:
spam( ham[ 1 ], { eggs: 2 } )
复制代码


2、逗号,分号或冒号之前:


# 正确的例子:
if x == 4: print x, y; x, y = y, x
# 错误的例子:
if x == 4 : print x , y ; x , y = y , x
复制代码


3、切片操作


# 正确的例子:
ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
ham[lower:upper], ham[lower:upper:], ham[lower::step]
ham[lower+offset : upper+offset]
ham[: upper_fn(x) : step_fn(x)], ham[:: step_fn(x)]
ham[lower + offset : upper + offset]
# 错误的例子:
ham[lower + offset:upper + offset]
ham[1: 9], ham[1 :9], ham[1:9 :3]
ham[lower : : upper]
ham[ : upper]
复制代码


4、赋值


# 正确的例子:
x = 1
y = 2
long_variable = 3
# 错误的例子:
x             = 1
y             = 2
long_variable = 3
复制代码


还有一点需要注意的是,一定要把行尾的空格删掉。


注释


对代码进行必要的注释,如果修改代码,还要修改对应的注释内容。

删除无用的注释内容,增加代码可读性。


块注释


要使用块注释,禁止使用行内注释,注释时,# 和后面的注释内容要有空格。

例如:


# 这是一个注释
x = 1 + 1
复制代码


不要使用下面的注释方式:


x = 1 + 1   # 这是一个注释
复制代码


TODO 注释


主要包含以下三点内容:

  1. 开头包含「TODO」字符串
  2. 紧跟着是用括号括起来的你的名字或者 email
  3. 再接下来是冒号,然后写接下来要做内容的文字解释


例如:


# TODO(xiaoming): 明确需求之后再开发
复制代码


档字符串


对于公共模块,函数,类和方法,使用文档字符串。内容包括三个方面,分别是功能描述、参数、返回值。

例如:


class MyClass:
    """
    这是一个自定义类
    """
    something
def func():
    """
    这是一个自定义函数
    params:
        params1: 第一个参数
        params2: 第二个参数
    return:
        {'data': {}, 'status': 200}
    """
    something    
复制代码


命名


1、文件名

采用小写字母和下划线的方式。

例如:


utils.py
mail_lib.py
复制代码


2、函数名

采用小写字母和下划线的方式。

例如:


def func():
    pass
def send_mail():
    pass
复制代码


3、类名

采用大驼峰方式。

例如:


class MyClass:
    pass
复制代码


4、常量和变量:

例如:


# 常量
TOTAL
MAX_COUNT
# 变量
total
max_total


目录
相关文章
|
1月前
|
存储 数据库连接 API
Python环境变量在开发和运行Python应用程序时起着重要的作用
Python环境变量在开发和运行Python应用程序时起着重要的作用
82 15
|
2月前
|
算法 测试技术 开发者
性能优化与代码审查:提升Python开发效率
【10月更文挑战第12天】本文探讨了Python开发中性能优化和代码审查的重要性,介绍了选择合适数据结构、使用生成器、避免全局变量等性能优化技巧,以及遵守编码规范、使用静态代码分析工具、编写单元测试等代码审查方法,旨在帮助开发者提升开发效率和代码质量。
39 5
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
175 45
|
14天前
|
存储 API 数据库
使用Python开发获取商品销量详情API接口
本文介绍了使用Python开发获取商品销量详情的API接口方法,涵盖API接口概述、技术选型(Flask与FastAPI)、环境准备、API接口创建及调用淘宝开放平台API等内容。通过示例代码,详细说明了如何构建和调用API,以及开发过程中需要注意的事项,如数据库连接、API权限、错误处理、安全性和性能优化等。
62 5
|
1月前
|
JSON 安全 API
如何使用Python开发API接口?
在现代软件开发中,API(应用程序编程接口)用于不同软件组件之间的通信和数据交换,实现系统互操作性。Python因其简单易用和强大功能,成为开发API的热门选择。本文详细介绍了Python开发API的基础知识、优势、实现方式(如Flask和Django框架)、实战示例及注意事项,帮助读者掌握高效、安全的API开发技巧。
167 3
如何使用Python开发API接口?
|
26天前
|
机器学习/深度学习 人工智能 关系型数据库
Python开发
Python开发
40 7
|
28天前
|
前端开发 安全 数据库
使用Python开发独立站的全面指南
本文详细介绍了如何使用Python及其Web框架Django和Flask快速搭建功能完善、易于管理的独立站。从Python和Web开发基础讲起,逐步覆盖环境搭建、项目创建、数据库设计、视图与URL路由、模板创建、表单处理、测试调试、部署优化及安全维护等内容,旨在帮助开发者高效构建稳定的Web应用。
66 1
|
1月前
|
缓存 API 数据库
Python哪个框架合适开发速卖通商品详情api?
在跨境电商平台速卖通的商品详情数据获取与整合中,Python 语言及其多种框架(如 Flask、Django、Tornado 和 FastAPI)提供了高效解决方案。Flask 简洁灵活,适合快速开发;Django 功能全面,适用于大型项目;Tornado 性能卓越,擅长处理高并发;FastAPI 结合类型提示和异步编程,开发体验优秀。选择合适的框架需综合考虑项目规模、性能要求和团队技术栈。
26 2
|
1月前
|
存储 API 数据安全/隐私保护
Python开发淘宝详情API的深入探索
通过Python开发淘宝详情API,你可以高效地获取商品信息,为电商运营和市场分析提供强有力的数据支持。本文详细介绍了注册开发者账号、获取API密钥、构建请求、解析响应数据等步骤,并探讨了相关的注意事项和最佳实践。希望这些内容能够帮助你更好地理解和使用淘宝开放平台的API接口,实现你的业务需求。
38 1
|
1月前
|
JSON API 数据格式
如何使用Python开发1688商品详情API接口?
本文介绍了如何使用Python开发1688商品详情API接口,获取商品的标题、价格、销量和评价等详细信息。主要内容包括注册1688开放平台账号、安装必要Python模块、了解API接口、生成签名、编写Python代码、解析返回数据以及错误处理和日志记录。通过这些步骤,开发者可以轻松地集成1688商品数据到自己的应用中。
35 1