Python编码规范

python相关编码规范 Python支持多种编码方式,常用的编码包括UTF-8、GBK、GB2312、ISO-8859-1等等。 默认情况下,Python 3.x的源码文件采用UTF-8编码格式。 阅读详情

标准头部

#!/usr/bin/python

编码

所有的 Python 脚本文件都应在文件头标上 #-*- coding:utf8 -*- 。设置编辑器,默认保存为 utf8 格式。

main函数

应用程序要定义main函数而不要直接写脚本

def main():
dosomething()

if __name__ == "__main__" :
main()

如果是全局变量,则需要显式加上"global"。

注释

Python 的注释分为两种的概念,一种是由 # 开头的"真正的"注释,另一种是 docstrings。前者表明为何选择当前实现以及这种实现的原理和难点,后者表明如何使用这个包、模块、类、函数(方法),甚至包括使用示例和单元测 试。
坚持适当注释原则。对不存在技术难点的代码坚持不注释,对存在技术难点的代码必须注释。但与注释不同,推荐对每一个包、模块、类、函数(方法)写 docstrings,除非代码一目了然,非常简单。
注释块通常应用于跟随着一些(或者全部)代码并和这些代码有着相同的缩进层次。注释块中每行以'#'和一个空格开始(除非他是注释内的缩进文本)。注释块 内的段落以仅含单个'#'的行分割。注释块上下方要有一空行包围。

缩进

Python 代码缩进为4个空格,在文件结尾声明

# Modeline {{{
# vim:set ts=4:
# vim600:fdm=marker fdl=0 fdc=0
# }}}

空格

空格在Python 代码中是有意义的,因为Python的语法依赖于缩进,在行首的空格称为前导空格。在这一节不讨论前导空格相关的内容,只讨论非前导空格。非前导空格在 Python 代码中没有意义,但适当地加入非前导空格可以增进代码的可读性。
1)在二元算术、逻辑运算符前后加空格:如 a = b + c;
2)在一元前缀运算符后不加空格,如 if !flg: pass;
3)":"用在行尾时前后皆不加空格,如分支、循环、函数和类定义语言;用在非行尾时后端加空格,如 dict 对象的定义 d = {'key': 'value'}。
4)括号(含圆括号、方括号和花括号)前后不加空格,如 do_something(arg1, arg2),而不是 do_something( arg1, arg2 );
5)逗号后面加一个空格,前面不加空格。

空行

1)在类、函数的定义间加空行;
2)在import不同种类的模块间加工行;
3)在函数中的逻辑段落间加空行,即把相关的代码紧凑写在一起,作为一个逻辑段落,段落间以空行分隔。

断行

行的最大长度不得超过 80 个字符的标准。折叠长行的方法有以下几种方法:
1)为长变量名换一个短名,如:

this
.is.a.very.long
.variable_name = this
.is.another.long
.variable_name

应改为:

variable_name1 = this
.is.a.very.long
.variable_name
variable_name2 = this .is.another.variable_name
variable_name1 = variable_name2

2)在括号(包括圆括号、方括号和花括号)内换行,如:

class Edit(CBase):
def __init__(self, parent, width,
font = FONT, color = BLACK, pos = POS, style = 0):

或:

very_very_very_long_variable_name = Edit(parent, /
width, /
font, /
color, /
pos)

2)在长行加入续行符强行断行,断行的位置应在操作符前,且换行后多一个缩进,以使维护人员看代码的时候看到代码行首即可判定这里存在换行,如:

if
 color == WHITE or color == BLACK /
or color == BLUE:
do_something(color);

命名

常量

常量名所有字母大写,由下划线连接各个单词,如:

WHITE = 0XFFFFFF
THIS_IS_A_CONSTANT = 1
变量

变量名全部小写,由下划线连接各个单词,如:

color = WHITE
this_is_a_variable = 1

不论是类成员变量还是全局变量,均不使用m或g前缀。私有类成员使用单一下划线前缀标识。
变量名不应带有类型信息,因为 Python 是动态类型语言。如 iValue、names_list、dict_obj 等都是不好的命名。

函数

函数名的命名规则与变量名相同。

类

类名单词首字母大写,不使用下划线连接单词,也不加入 C、T 等前缀。如:

class ThisIsAClass(object):
pass
模块

模块名全部小写,对于包内使用的模块,可以加一个下划线前缀,如:

module.py
_internal_module.py
包

包的命名规范与模块相同。

缩写

命名应当尽量使用全拼写的单词,缩写的情况有如下两种:
1)常用的缩写,如 XML、ID等,在命名时也应只大写首字母,如
class XmlParser(object):pass
2)命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式,如去除元音、包含辅音的首字符等方式,例如:
function 缩写为 fn
text 缩写为 txt
object 缩写为 obj
count 缩写为 cnt
number 缩写为 num,等。

特定命名方式

主要是指 __xxx_ _ 形式的系统保留字命名法。项目中也可以使用这种命名,它的意义在于这种形式的变量是只读的,这种形式的类成员函数尽量不要重载。如

class Base(object):
def __init__(self, id, parent = None):
self.__id__ = id
self.__parent__ = parent
def __message__(self, msgid):
# ...略

其中 _id 、 parent _ 和 _message _ 都采用了系统保留字命名法。

语句
import

import 语句有以下几个原则需要遵守:
1)import 的次序,先import Python内置模块,再import第三方模块,最后import自己开发的项目中的其它模块;这几种模块中用空行分隔开来。
2)一条import语句import一个模块。
3)当从模块中 import 多个对象且超过一行时,使用如下断行法(此语法 py2.5 以上版本才支持):
from module import (obj1, obj2, obj3, obj4,
obj5, obj6)
4)不要使用 from module import *,除非是 import 常量定义模块或其它你确保不会出现命名空间冲突的模块。

赋值

对于赋值语言,主要是不要做无谓的对齐,如:

a         = 1
variable = 2
fn = callback_function

应该写成:

a = 1
variable = 2
fn = callback_function
分支和循环

不要写成一行,如:

if
 !flg: pass
for i in xrange(10): print i

应该写成:

if
 !flg:
pass
for i in xrange(10):
print i
其他建议

避免在内存中处理大对象,由于python申请的内存不一定会返还给操作系统(有时会返还给python内存池)

 

本文在 《Python编码规范》http://www.cnblogs.com/BoyeeStudio/articles/382882.html的基础上进 行补充

Python的编码规范 在讲解具体的 Python 编码规范之前,先来看看图 1 中的代码:图 1 两段功能相同的 Python 代码对比图 1 中的两段代码你会发现,它们所包含的代码时完全相同的,但很明显,右侧的代码编写格式看上去比左侧的代码段更加规整,阅读起来也会比较轻松、畅快,因为它遵循了最基本的 Python 代码编写规范。 阅读详情

相关推荐

Python编码规范的重要性

很多去 Google 参观的人,在用完洗手间后都有这样的疑惑,马桶前面的门上怎么会贴着 [Python]编码规范?要知道,Google 对编码规范的要求极其严格,这也能从侧面说明编码规范的重要性。 对于编码规范的认知,很多初学者还仅停留在初级阶段,即只知道编码规范有用,比如命名时使用驼峰式的格式(如 TheFirstDemo),而至于为什么要求这样严格,就不是很清楚了。 本节,将给读者扫除以下 2 个盲区: Python 编码规范到底有多么重要,它对于业务开发来说,究竟有哪些帮助? 有哪些流程和

MC_XY的博客 556

python代码风格指南:pep8 中文翻译

摘要 本文给出主Python版本标准库的编码约定。CPython的C代码风格参见​PEP7。本文和​PEP 257 文档字符串标准改编自Guido最初的《Python Style Guide》, 并增加了Barry的​GNU Mailman Coding Style Guide的部分内容。本文会随着语言改变等而改变。许多项目都有自己的编码风格指南,冲突时自己的指南为准。 本文给出主Python...

weixin_33796205的博客 748

一份超详细的Python编码规范指南

作者:禅与计算机程序设计艺术 1.简介 Python作为世界上最流行的编程语言之一,它在很多领域都扮演着关键的角色,例如数据处理、机器学习、Web开发、游戏开发等。因此,熟练掌握Python的编程技巧对于各个行业都是至关重要的。但是,由于众多开源库、框架和工具层出不穷,同时也存在着不同风格的编程习惯,导

AI天才研究院 539

Python基础知识——编码规范

二、缩进(体现代码的逻辑关系)【空格悬挂式缩进,Tab键(注意二者不可混用)】三、语句换行(语句还是以完整的一段话)>>> """多行注释写法一""">>> '''多行注释写法一'''>>> #这个是单行注释。四、使用必要的空格和空行。

weixin_61972561的博客 184

Python编码规范(Google)

Python编码规范(Google),Python编码规范(Google),Python编码规范(Google),Python编码规范(Google),Python编码规范(Google)

5分钟上手,Cursor + IntelliJ IDEA 双端开发:高效协同的终极方案

最好的工具,是让你忘记工具的存在。通过AI 的创造力(Cursor)IDE 的工程力(IDEA)无缝的上下文流转(插件协同)从此,不再手忙脚乱切窗口,不再迷失在文件树中。只需一个快捷键,专注编码本身。装上这两个插件后,日常开发体验虽然没有天翻地覆的变化, 但至少摸鱼的几个小时时间是有的!

weixin_44058951的博客 2198

【Python---代码规范 】

我们有句老话叫“干一行,爱一行”,我们不是为了考研(疯狂的赛车烂哏),而是要做一个高级的程序员。高级!写出能完成功能的程序每个程序员都可以搞定,但能写出优雅的程序的程序员却寥寥无几,因此程序写的优雅与否则是区分顶级程序员与一般程序员的终极指标所在。为了保证代码的易读性,可维护性,稳定性,以及提高脚本的美观度,运行性能,并提前发现一些隐藏的BUG,特制定这一系列通用的规则来统一大家的编写风格,各自业务组可以制定更详细的规则,如模块的划分,引用关系等。

qq_45832651的博客 1998

Xilinx XDMA IP核配置实战:AXI Memory Mapped vs Stream选型指南(附PCIe调试技巧)

本文深入解析Xilinx XDMA IP核配置中AXI Memory Mapped与AXI Stream两种DMA接口的核心区别与选型策略。针对PCIe高速数据传输场景,详细对比了二者在数据特性、延迟、硬件资源及软件复杂度上的差异,为FPGA工程师在数据采集、实时处理等项目中做出高效设计决策提供实战指南,并附有关键的PCIe调试技巧。

qsc901234的博客 585

python代码规范(摘抄)

(3)函数的左括号前不要加空格,如fun(1)。(4)序列的左括号前不要加空格,如 list[2]。(5)操作符左右各加一个空格,如a+b=c。标准 Python 风格中每个缩进级别使用4个空格,不推荐使用制表符,禁止混用空格与Tab制表符。(7)在if、for、 while 语句中,即使执行语句只有一句,也必须另起一行。(2)行的最大长度。每行最大长度为79,换行可以使用反斜杠,但建议使用圆括号。(2)逗号、冒号、分号前不要加空格。(6)不要将多条语句写在同一行。(1)右括号前不要加空格。

weixin_38028591的博客 840

大模型量化方法总结

本文主要对大模型量化方法进行了总结,希望对学习大语言模型的同学们有所帮助。 文章目录 1. 前言 2. 模型精度 3. 量化方法 3.1 方法一 3.2 方法二 3.3 方法三

herosunly的博客 1万+

R语言使用rms包的psm函数拟合参数生存模型(parametric survival model)、并可视化列线图(诺模图、nomogram)

R语言使用rms包的psm函数拟合参数生存模型(parametric survival model)、并可视化列线图(诺模图、nomogram)

statistics+insight+vista+power 903

【python技能树】python编码规范

想要写好python代码,必须了解python相关编码规范,有了这个的加持,编写的代码不仅可以实现相应的功能,而且简单易读,逻辑清晰。本节技能树主要分享相应的python编码规范,学习python的小伙伴们请仔细阅读,对你的python代码的编写肯定有质的提高!!! 1 代码编码格式 一般来说,声明编码格式在脚本中是必需的。 国际惯例,文件编码和 Python 编码格式全部为 utf-8 。例如:在 Python 代码的开头,要统⼀加上如下代码: # -- coding: utf-8 -- 如..

左手の明天的博客 4万+

ComfyUI 提示Allocation on device 显存占满的解决方法及秋叶整合包的优化方法

最近在玩ComfyUI的时候,发现一个让人崩溃的问题——VRAM一直占满,最终报错: 简单来说,就是显卡显存溢出了,导致程序无法继续运行。尤其是一些大模型或者复杂工作流,很容易让显存飙升到极限。那怎么办?直接在启动命令后加上 ,例如: 这个参数的作用是啥? 默认情况下,ComfyUI会尽量让模型一直留在显存里,即使有些部分暂时用不到,导致显存迟早被填满。而 可以强制让ComfyUI把数据卸载到常规内存,减少显存占用。如果你的显存真的不够用,还可以再加 参数: 这个参数的意思就是开启低显存模式,进一步优化

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1万+

【python 编码规范】python编码规范手册

python编码规范手册 目录 一、编码 2 二、行长度 2 三、引号 2 四、空行 2 五、import 语句 2 六、 注释 3 6.1、块注释 3 6.2、行注释 3 6.3、文档注释 4 七、 命名规范 5 7.1、模块 5 7.2、类名 5 7.3、函数 5 7.4、变量名 6 7.5、常量名 6 一、编码 1.1、如无特殊情况,文件一律使用UTF-8编码。 1.2、如无特殊情况,文件...

赖德发的博客 1612

Android 12 大屏时底下显示任务栏以及虚拟按键靠右问题

Android 12 点大屏时,底下导航栏变成显示任务栏,虚拟按键靠右的分析以及修改

Android系统开发笔记 4686

基于强化学习的多无人机路径规划

我们使用了Dueling Double Deep Q-Network(DDDQN)算法来训练智能体,这个算法在深度Q学习算法的基础上进行了升级,具有更快的收敛速度和更好的性能。本文提出了一种基于强化学习的算法,实现了多无人机路径规划,并提供相应的MATLAB代码。通过基于强化学习的多无人机路径规划算法,我们能够高效地解决复杂环境下的任务需求,并在实际应用中取得了良好的效果。首先,我们定义了状态空间和动作空间。实验结果表明,我们的方法能够有效地解决多无人机路径规划问题,提高了任务完成的效率和准确率。

DjjPython的博客 820

我的 Python 编码规范

说起编码规范,很多文章都会提到PEP8这个规范。PEP是Python Enhancement Proposal(Python 增强建议书)的简写。PEP8整个文档引用了很多其他标准,看起来挺复杂的,我从来没有完整读下来过。好在龟叔说过,A Foolish Consistency is the Hobgoblin of Little Minds(尽信书,不如无书),只要保持一致性、可读性,就是一个好的规范。基于PEP8规范的原则,结合开发团队在工作中的养成的习惯,我整理了一份实用的编码规范,推荐给初学者。

Python作业辅导员 - 天元浪子 2万+

YOLOv13添加轻量化的EMA模块Faster_EMA,轻量又涨点!map50提升4.56个点,召回率提升9.66!

本文介绍了YOLOv13模型的优化移植方法,通过添加Faster_EMA模块和超参数调整,使模型性能显著提升。主要修改包括:1) 创建新的模型配置文件yolov13-Faster_EMA.yaml;2) 在tasks.py中添加新模块;3) 修改__init__.py和block.py文件,新增Partial_conv3和DropPath类。优化后模型mAP50提升4.56%,召回率提升9.66%,验证了改进方案的有效性。代码实现了局部卷积和随机深度等先进技术,为YOLO系列模型性能优化提供了新思路。

FJN110的博客 2604

pep8 python 编码规范_编码规范的重要性

很多去 Google 参观的人,在用完洗手间后都有这样的疑惑,马桶前面的门上怎么会贴着 Python 编码规范?要知道,Google 对编码规范的要求极其严格,这也能从侧面说明编码规范的重要性。对于编码规范的认知,很多初学者还仅停留在初级阶段,即只知道编码规范有用,比如命名时使用驼峰式的格式(如 TheFirstDemo),而至于为什么要求这样严格,就不是很清楚了。Python 编码规范到底有多么...

weixin_39635648的博客 244

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Python 编码规范

这份编码规范旨在提高 Python 代码的可读性和一致性。本规范基于 PEP 8,并结合了一些实际经验和最佳实践。

judahwang的博客 2187

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

python 编码规范

python 编码规范

融码一生:专注 Python、C/C++、Linux、机器学习 & 深度学习、NLP、算法领域分享 469

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python的编码规范_python编码规范

python编码规范文件及目录规范文件保存为 utf-8 格式。程序首行必须为编码声明:# -*- coding:utf-8 -*-文件名全部小写。代码风格空格设置用空格符替换TAB符。代码缩进为4个空格符。仅在运算符前后(如+,-,=,==)各加一个空格,不要在用于指定关键字参数或默认参数值的'='号周围使用空格,其他语句和表达式中都不要加空格。分行程序头部声明和import之间、import和...

weixin_39915171的博客 174

Python编码规范总结

前言   有句俗话说得好:“没有规矩,不成方圆。”这句话在计算机编程领域同样适用。大家都知道,每个人编写代码的习惯与风格是不一样的。而代码风格的统一可以带来很多好处,我认为从最直观的角度来说就是增强了代码的可读性。此外,统一代码风格还有更容易发现bug、略微提高性能等好处。   之前曾经读过一篇文章,里面提到这样一句话:“任何一个傻瓜都能写出计算机可以理解的代码,唯有写出人类容易理解的代码,才是优...

CCH²¹的博客 496

python编码规范简单总结

编码规范方面 一、命名规范 变量名通常由字母,数字,下划线组成; 数字不能作为变量名开头; 不能以python中的关键字命名; 变量名要有意义; 不要用汉字和拼音去命名; 变量名要区分大小写; 推荐使用驼峰型来命名; 常量通常使用大写来定义. 二、注释规范 python中的单行注释是以#开头的,被注释的任何内容都会忽略,不会输出。 为了代码规范,一般#井号需后要加一个空格。 而多行注释可以使用个单引号'''或者三个双引号"""。 注意单引号或者双引号必须是英文下的单引号或...

代码是程序员的语言,博客是思想的桥梁,连接你我,共享智慧之光。 2133

【Python零基础到入门】Python预备知识必备篇——Python基本编码规范

世界上没有绝对的公平,如果我们起点就比别人第一步,那就更需要比别人努力了。 每天比别人努力多一点点,就会有很大的突破。你必须特别努力,才能显得毫不费力。 期待你成为理想中的自己那一天,加油!

努力前行,总会成为自己心中的那道光 2万+

pep8 python 编码规范_Python编码规范的重要性

很多去 Google 参观的人,在用完洗手间后都有这样的疑惑,马桶前面的门上怎么会贴着Python编码规范?要知道,Google 对编码规范的要求极其严格,这也能从侧面说明编码规范的重要性。对于编码规范的认知,很多初学者还仅停留在初级阶段,即只知道编码规范有用,比如命名时使用驼峰式的格式(如 TheFirstDemo),而至于为什么要求这样严格,就不是很清楚了。本节,将给读者扫除以下...

weixin_39984661的博客 220
上一篇: python技巧(3)——下划线,私有变量
下一篇: Python strip lstrip rstrip使用方法
facevoid
博客等级 码龄19年 30粉丝 4原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值