遵循PEP8风格

  在编写python代码的时候我们应该采用统一的风格来编写代码,可以使代码更加容易读懂。采用和其他程序员统一的编码风格来写代码,也可以使项目更利于多人协作开发。即便代码只有你自己能看懂,也得遵循这套风格,可以令自己后续继续二次开发的时候更容易看懂自己的代码。

一 空白与缩进

  在Python中,空白会影响代码的含义。Python程序员使用空白的时候会影响代码的清晰程度。

1.使用4个空格来表示缩进

if 'tank' == "handsome":
# 这里是4个空格缩进
print('是真的!')

在圆括号、方括号和花括号内,若想写多行参数。应该垂直对齐,要么使用挂行缩进对齐。当使用挂行缩进时,应该考虑到第一行是否应该有参数,以及使用缩进以区分自己多行参数。

- 推荐使用:

与左括号对齐

def login(username, password, root):
pass # 与左括号对齐
func = login(username='tank',
password="",
root='super')

用更多缩进来与其他行区分

# 用更多的缩进来与其他行区分
def register(
username,
password,
root):
print(username, password, root)

挂行缩进应该再换一行

func = register(
username='tank',
password='',
root='supder')

- 不推荐

# 当缩进没有与其他行区分时,要增加缩进
def register(
username, password,
root):
print(username, password, root) # 没有使用垂直对齐时,禁止把参数放在第一行
func = register(username='广东仔',
password='',
root='super')

2.每一行的字符数不应该超过79

# 一行代码的字数不能超过79
def abcdefg.....79

3.对于占据多行的长表达式来说,除了首行之外的其余每一行都应该换行开头增加4个空格。

# 推荐
num1 = 1
num2 = 2
num3 = 3
num4 = 4
num5 = 5
num6 = 6
print(
num1
+ num2
+ num3
+ num4
+ num5
+ num6
) # 不推荐
print(num1 +
num2 +
num3 +
num4)

4.Python文件中的函数与类之间应该用两个空行隔开。

# 类
class Foo:
pass # 函数
def foo():
pass

5.在同一个类中,各方法之间应该用一个空行隔开。

class DSB:

    def s1(self):
pass def s2(self):
pass

6.在使用下标来获取列表元素、调用函数或给关键字参数赋值的时候,不要在两旁添加空格。

# 列表元素
list1 = [1, 2, 3] # 推荐
print(list1[0]) # 不推荐
print(list1[ 0 ]) # 调用函数
def foo(x, y):
pass # 推荐
foo(x=10, y=20) # 不推荐
foo(x = 10, y = 20)

7.为变量赋值的时候,赋值符号在左右侧应该各自写一个空格

name = 'tank'

二 命名

  在python中提倡采用不同风格来定义python中名称,例如变量名、函数名、类名等...

1.函数、变量及属性应该用小写字母来拼写,各单词之间以下划线相连

name_of_tank = 'tank'

2.受保护的实例属性,应该以单个下划线开头

_private_pwd = ''

3.私有的实例属性,应该以两个下划线开头

__private_field = ''

4.类名,应该以单个单词首字母均大写的形式来命名,各单词之间以下划线相连。

class StudentOfSomebody

5.常量,应该全部采用大写字母来拼写,各单词之间以下划线相连

SCHOOL_OF_CITY = "shanghai"

6.类中的实例方法,把首个参数命名为self,以表示该对象本身。

# 正确
class Student:
def running(self, name):
print(f"{name} is running") stu1 = Student()
stu1.running("张全蛋") # 错误
'''
class Student:
def running(xxx, name):
print(f"{name} is running")
'''

7.类方法的首个参数,应该命名为cls,以表示该类本身。

class Teacher:
@classmethod
def piao(cls, name):
print(cls) # <class Teacher> Teacher.piao('jack')
>>> jason is piao ing...

三 表达式和语句

1.采用内联形式的否定词,而不要把否定词放在整个表达式前。

name1 = 'tank'
name2 = 'superman' # 推荐
if name1 is not name2:
pass # 反对
if not name1 is name2:
pass

2.不要通过检测长度的方法来判断list是否为空,而应该采用if not list 这种写法来判断,若为空值将自动设置为False

list1 = [1, 2, 3]
# 不推荐
if len(list1) == 0:
pass # 推荐
if not list1:
pass

3.检测list是否为[1]或者'li'等非空值时,if list会把非空的值判断为True。

list1 = ['jason', 'is', 'sb']

# 推荐
if list1:
pass

4.不要编写单行的if语句、for、while循环以及except复合语句,而是应该把这些语句分成多行来书写,以示清晰。

# 推荐
if True:
print('tank 喜欢吃生蚝,男人的加油站,女人的美容院') while True:
print('tank 喜欢吃生蚝,男人的加油站,女人的美容院') for line in range(10):
print('tank 喜欢吃生蚝,男人的加油站,女人的美容院') # 不推荐
'''
if True: print('tank 很帅')
while True: print('tank 很帅')
for line in range(10): print('tank 很帅')
'''

5.import 应该放在文件开头

# 推荐
import json
content = 'jason 喜欢大宝剑' # 不推荐
content = 'jsaon 喜欢大宝剑'
import json

6.引入模块的时候,应该使用绝对名称,而不应该根据当前模块的路径来使用相对名称。

# 推荐
from foo import bar # 不推荐
# 在当前模块位置
import bar

7.如果一定要以相对名称来写import语句,那就采用明确的写法

from . import foo

8.文件中的import语句应该按照顺序划分为三个部分,分别表示标准库模块、第三方模块以及自定义模块。在每一部分中,各自的import语句应该按照模块的字母顺序来排序。

# python标准库
import abc, base64, copy, datetime, email, fcntl # 第三方模块
import bs4,fake_useragent # 自定义模块
import A, B, C, D

PEP8风格总结

'''
1.当编写python代码时,应该遵循PEP8编码风格。
2.与广大python开发者采用同一套代码风格,可以使项目更利于多人协同开发。
3.采用一致的风格来编写代码,可以让自己负责项目的二次开发工作更为容易。
'''

官网:https://www.cnblogs.com/kermitjam/p/11149422.html

遵循PEP8风格的更多相关文章

  1. 第2条:遵循PEP8风格指南

    <Python Enhancement Proposal #8>(8号Python增强提案)又叫PEP8,它是针对Python代码格式而编订的风格指南. 尽管可以在保证语法正确的前提下随意 ...

  2. 遵循PEP8风格指南

    整理来自 effective python 一 空白 1 使用space来标识缩进,而不是tab 2 和语法相关的每层缩进都使用4个空格 3 每行的字符数不应该超过79 4 对于多行的表达式,除了首行 ...

  3. 按PEP8风格自动排版Python代码

    Autopep8是一个将Python代码自动排版为PEP8风格的小工具.它使用pep8工具来决定代码中的哪部分需要被排版.Autopep8可以修复大部分pep8工具中报告的排版问题. 安装步骤如下: ...

  4. Python-开发规范-遵循PEP8规范

    Python中空白 1. 4个空格表示缩进,用4个空格代替一个TAB 2. 不再逗号.分号.冒号前加空格,应该在其后加空格 3. 关系运行符.数学运算符.逻辑运算符.赋值运算符 前后都加一个空格 4. ...

  5. Pycharm配置autopep8:自动调整代码为PEP8风格

    关于PEP 8 PEP 8,Style Guide for Python Code,是Python官方推出编码约定,主要是为了保证 Python 编码的风格一致,提高代码的可读性. 官网地址:http ...

  6. 编写高质量的Python代码系列(一)之用Pythonic方式来思考

    Python开发者用Pythonic这个形容词来描述具有特定风格的代码.这种风格是大家在使用Python语言进行编程并相互协作的过程中逐渐形成的习惯.那么,如何以改风格完成常见的Python编程工作呢 ...

  7. Python -- Effective Python:编写高质量Python代码的59个有效方法

    第 1 章 用 Pythonic 方式来思考 第 1 条:确认自己所用的 Python 版本 python --version import sys print(sys.version_info) p ...

  8. [Effective Python] 用Pythonic方式来思考

    Effective Python chap.1 用Pythonic方式来思考 Pythonic: 一门语言的编程习惯是由用户来确立的. 1. 确认自己所使用的Python版本 2. 遵循PEP8风格指 ...

  9. Effective Python之编写高质量Python代码的59个有效方法

                                                         这个周末断断续续的阅读完了<Effective Python之编写高质量Python代码 ...

随机推荐

  1. MyEclipse清除所有断点的方法

    今天调试网站时遇到点奇怪的问题,于是在宠大的代码段里加了N处断点,但从其它项目代码段链接代码加入断点后,关闭标签再次打开时发现断点看不到了,但运行到那段代码时依然会被中断.没有断点标记,不能手动取消怎 ...

  2. Unity开发实战探讨-资源的加载释放最佳策略

    注:本文中用到的大部分术语和函数都是Unity中比较基本的概念,所以本文只是直接引用,不再详细解释各种概念的具体内容,若要深入了解,请查阅相关资料. Unity的资源陷阱 游戏资源的加载和释放导致的内 ...

  3. mysql 5 长度解析

    mysql 5 以后 都按照字符来算 不是字节 char(10)可以放10个汉字或者10个字母

  4. 七、Spring之深入理解AOP源码

    Spring之深入理解AOP源码 ​ 在上一篇博文中,我们对AOP有了初步的了解,那么接下来我们就对AOP的实现原理进行深入的分析. ​ 在之前写的那个AOP示例代码当中有这样一个注解:@Enable ...

  5. Knative 基本功能深入剖析:Knative Serving 的流量灰度和版本管理

    作者|冬岛 阿里云技术专家 本篇主要介绍 Knative Serving 的流量灰度,通过一个 rest-api 的例子演示如何创建不同的 Revision.如何在不同的 Revision 之间按照流 ...

  6. Window权限维持(十):Netsh Helper DLL

    Netsh是Windows实用程序,管理员可以使用它来执行与系统的网络配置有关的任务,并在基于主机的Windows防火墙上进行修改.可以通过使用DLL文件来扩展Netsh功能.此功能使红队可以使用此工 ...

  7. java架构之路-(nginx使用详解)nginx的反向代理和优化配置

    书接上回说,nginx我们学会了简单的配置.那么我今天来聊一下,我们ngxin的一些优化配置(我不是很懂,不敢谈高级配置).我先来看一下nginx的好处和正向代理. nginx的好处 1.可以高并发连 ...

  8. OpenGL入门1.4:纹理/贴图Texture

    每一个小步骤的源码都放在了Github 的内容为插入注释,可以先跳过 前言 游戏玩家对Texture这个词应该不陌生,我们已经知道了怎么为每个顶点添加颜色来增加图形的细节,但,如果想让图形看起来更真实 ...

  9. ADO.NET中的5个主要对象

    1.Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的. Close和Dispose的区别,Close以后还可以Open,Dispose以 ...

  10. Python - 正则表达式 - 第二十二天

    正则表达式 - 教程 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符"). 正则表达式使用单 ...