参照文档:https://alvin.red/2017/10/07/python-pep-8/
一、f语句中条件过多,导致长度过长怎么办?
1. 原来的格式:
if ('skip_test' in api_dsl and api_dsl['skip_test']) or ('depend_on' not in api_dsl) or ('enabled_only' in api_dsl and api_dsl['enabled_only'] != env):
continue
2. 优化后的格式:
if (('skip_test' in api_dsl and api_dsl['skip_test']) # 在条件语句的续行增加一级缩进
or ('depend_on' not in api_dsl)
or ('enabled_only' in api_dsl and api_dsl['enabled_only'] != env)):
continue
3. 优化方案:在if条件最外面添加圆括号,利用圆括号进行隐式续行。长行可以通过在括号内换行来分成多行。另外,运算符或者关键字要放在最前面哦~
二、空行使用方式
1. 最外层的函数和类,使用2个空行
2. 类中的方法,使用1个空行
3. 在函数内使用尽量少的空行,使代码逻辑更清晰
import copy
class TestClass: # 最外层的类,使用2个空行
def func_a(self): # 第一个方法不添加空行也可以
print("这个是类中的方法")
def func_b(self): # 类中的方法,使用1个空行
print("这个是类中的方法")
def method_test(): # 最外层的函数,使用2个空行
print("这个是最外层的函数")
a = 1 # 使用尽量少的空行,使代码逻辑更清晰
b = a
print(b)
三、模块引用
1. 模块引用要写在代码文件开头,位于模块注释和文档字符串之后,模块全局变量和常量声明之前
2. 分行写,不要都写在一行
3. 顺序依次是:标准库、第三方库、本地库
# -*- coding:utf-8 -*-
# python标准库:
import logging # 为python提供日志功能
import os # 提供与操作系统相关联的函数
import json # python对象与json对象的转换
import copy # 用于对象的拷贝操作
# python第三方库:
import requests # http库
import yaml # 解析python中的yaml配置文件
# 本地库:
import mymodule
四、命名规范
1. 包和模块(模块就是文件):全小写,短小。可以在模块名中添加下划线,但是在包名中不应使用。比如:test_api.py
2. 类:使用大驼峰命名法(即每个单词首字母都大写)。比如:ApiTest
3. 方法:小写单词,必要时使用下划线。比如:api_func
4. 函数:与方法命名一致,小写单词,必要时使用下划线
5. 变量:小写单词,单词之间用_分割。比如:api_name
6. 常量:全部大写并用下划线将单词分开。比如:API_NAME或者NAME