目录
Python:关于代码的格式规范
为了提高代码的可读性:编写的代码很多时候并不是给自己一个人看的,实际上给别人阅读的次数要频繁得多。
当然,根据实际情况来看,如果这么做反而降低了可读性,那也不是非要遵守不可,总之,保证可读性!
Python中的格式规范:编码风格指南——PEP8,原文请移步官网:PEP8
这里只做一个简要概括。(其实在像Pycham这样的IDE中都有自动的机制,Pycham中在输入字符时就会提示有没有符合PEP8规范,而且快捷键Ctrl + Alt +L 也可以使代码格式化,让排版符合PEP8格式)
1.源文件编码、导入
Python核心发布中的代码应该始终使用UTF-8,且不应有编码声明,字符串和注释、Python标准库中的所有标识符必须使用ASCII标识符,在可行的地方使用英文单词。
为所有公共模块,函数,类和方法书写文档字符串。对非公开的方法书写文档字符串是没有必要的,但应该写注释描述这个方法是做什么的,这些注释应该写在def行后面。
多行文档字符串以一行 “”" 结束。
模块级别的内置属性(名字有前后双下划线的),例如__all__, 应该放置在模块的文档字符串后,任意import语句之前,from __future__导入除外。Python强制要求from __future__导入必须在任何代码之前,只能在模块级文档字符串之后。
导入通常是单独一行,位于文件顶部,在模块注释和字符串文档之后,在模块的全局变量和常量之前。
一般推荐绝对导入,但在处理复杂包布局时,绝对导入过于冗长,明确的相对导入可以用来替代绝对导入。
"""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
from subprocess import Popen, PIPE
# 明确的相对导入
from . import sibling
from .sibling import example
2.命名
命名遵循反应用法的原则,可读性很重要。
2.1 约定成俗的下划线命名
2.1.1 单前导下划线:“内部使用”标志。例如 from M import *
不会导入以下划线开头的对象。
2.2.2 单后置下划线:按惯例使用避免与Python关键字冲突,例如
Tkinter.Toplevel(master, class_='ClassName')
2.2.3 双前导下划线:当命名类属性,调用时名称改编。
2.2.4 前导和后置都是双下划线(不要创建这样的名字):存在于用户控制的命名空间的“神奇”的对象或属性:__init__,__import__或__file__
2.2 函数、方法、常量名
函数的命名规则 主要用来可调用的。
小写字母,必要时单词用下划线分开以提高可读性,非公开的私有方法在前面加一个下划线。
在接口被记录并且主要用作调用的情况下,用函数的命名规则来代替类名的命名规则。
注意内置名有一个单独的规则:大多数的内置名是一个单词(或两个单词一起),首字母大写字符串的规则仅用于异常名和内置常量。
常量大写,必要时用下划线隔开。
2.3 变量命名
first_word = "hello world"
变量名尽量小写,多个单词之间用下划线隔开。
2.3.1 单字符变量命名
不要使用字符‘O’(大写字母oh),‘l’(小写字母el)和‘I’(大写字母eye)作为单字符变量名。(你应该一眼看不出来后两个有什么区别),当想使用‘l’时,用‘L’代替。
2.3.2 全局变量命名
模块设计为通过from M import *来使用,应使用__all__机制防止导出全局变量,或使用加前缀的旧规则,为全局变量加下划线(可能你像表明这些全局变量是“非公开模块”)。
2.3.3 类型变量名
首字母大写,并且尽量短
from typing import TypeVar
VT_co = TypeVar('VT_co'