Python代码的书写规范

1. 一致性的建议

打破一条既定规则的两个好理由

当应用这个规则将导致代码可读性下降,即使对于某人来说他已经习惯于按照这条规则来阅读代码了

为了和周围的代码保持一致而打破规则(也许是历史原因)

2. 代码的布局

缩进

4个空格

代码行

行最大长度 : 79字符

推荐长度 : 72字符

分割方式 : "" , "()" , "{}"

空行

两行空行分割顶层函数和类的定义

一行空行分割方法或函数

额外空行分割相关函数群

类定义与第一个方法定义需要一行空行

编码

万年 "UTF-8"

导入

先import标准模块,再from ... import第三方模块(绝对路径) ,最后from ... import自建模块

每组导入空一行,一行导入一个包[模块,类等]

空格

紧贴各类括号

紧贴逗号,分号,冒号前

紧贴函数调用参数列表前开放式括号

紧贴再索引或切片括号

二元操作符或运算符或逻辑等两边各留一个空格

默认参数或关键参数"="不留空格

3. 注释

注释块

与相应代码有着相同缩进

行内注释

与代码被注释代码同行,以"#"+" "开头

文档注释

结尾处 """ 单独成行

版本注记

模块文档字符串之后,所有代码之前,上下空行分割

4. 命名

约定

模块名 : 不含下划线 ; 小写 ; 剪短

类名,异常名 : 首字母大写单词串

方法,函数 : 第一个字母小写的首字母大写单词串

属性,实例,变量 : 小写字母串

继承

私有 : 双下划线开头

非公有 : 单下划线开头

命名冲突

不降低可读性,能改就改,不能就在末尾加单个下划线或者数字

5. 设计建议

使用"is"或"is not"进行对"None"的单值比较

使用字符串方法代替字符串模块

使用startswith()和endswith()检查前后缀而不是使用切片

使用isinstance()判断对象是否是字符串而不是使用type()

判断空序列或字典不要使用len()

书写字符串文字不要依赖有意义的后置空格

不要用"=="比较布尔值

python中有哪些重要的书写规则_一文读懂Python代码的书写规范相关推荐

  1. python输入什么就输出什么意思_一文读懂Python的输入和输出

    本文介绍了Python的输入和输出,既然是Python代码,那么就一定有输出量,那么,Python是如何输出的呢? 输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'h ...

  2. 廖雪峰讲python高阶函数求导公式_一文读懂Python 高阶函数

    高阶函数 将函数作为参数传入,这样的函数称为高阶函数.函数式编程就是指这种高度抽象的编程范式. 变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函 ...

  3. python输入什么就输出什么_一文读懂Python的输入和输出

    本文介绍了Python的输入和输出,既然是Python代码,那么就一定有输出量,那么,Python是如何输出的呢? 输出 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'h ...

  4. python读取枚举_一文读懂Python 枚举

    enum是一组绑定到唯一常数值的符号名称,并且具备可迭代性和可比较性的特性.我们可以使用 enum 创建具有良好定义的标识符,而不是直接使用魔法字符串或整数,也便于开发工程师的代码维护. 创建枚举 我 ...

  5. 各层电子数排布规则_一文读懂PCB多层板各层含义与设计原则

    PCB有单面.双面和多层的,对于收音机等简单的电器来说,使用单面PCB即可.但是,随着时代的进步,无论是功能还是体积,电子产品都需要更新换代.对于多功能.小体积的电子产品,单面和双面PCB都不能完全满 ...

  6. python中的映射_一文读懂Python中的映射

    python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员.获取成员.设置成员.删除成员. ...

  7. networkx edge 属性_一文读懂Python复杂网络分析库networkx | CSDN博文精选

    作者 | yyl424525 来源 | CSDN博客 文章目录 1. 简介 安装 支持四种图 绘制网络图基本流程 2. Graph-无向图 节点 边 属性 有向图和无向图互转 3. DiGraph-有 ...

  8. 读懂python语言_一文读懂python反射机制

    反射 反射机制就是在运行时,动态的确定对象的类型,并可以通过字符串调用对象属性.方法.导入模块,是一种基于字符串的事件驱动.解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译 ...

  9. angular 字符串转换成数字_一文看懂Python列表、元组和字符串操作

    好文推荐,转自CSDN,原作星辰StarDust,感觉写的比自己清晰-大江狗荐语. 序列 序列是具有索引和切片能力的集合. 列表.元组和字符串具有通过索引访问某个具体的值,或通过切片返回一段切片的能力 ...

最新文章

  1. 聊聊抖音、奈飞、Twitch、大疆、快手、B站的多媒体关键技术
  2. python实现shell_基于 Python 的简易 Shell 实现
  3. 算法提高课-搜索-DFS之搜索顺序-AcWing 1116. 马走日:dfs
  4. 我用的 cordova 插件
  5. zcmu1713(模拟)
  6. 神器 JMH + Arthas 性能监控
  7. Auto-Configuration Error: Cannot find gcc or CC
  8. rust睡觉按键没反应_扫描仪四个按键分别是
  9. Javaworkers团队第五周项目总结
  10. 【转】group by后使用rollup子句总结
  11. 运用计算机测量单缝衍射光强度分布,衍射光强检测系统、单缝衍射光路系统及光强检测方法与流程...
  12. 如何压缩文件到最小——压缩参数调整 for 7z
  13. 为什么一个还没毕业的大学生能够把 IO 讲的这么好?
  14. Kaggle数据集之电信客户流失数据分析
  15. modbus slave和modbus poll使用说明
  16. 高炉煤气净化提质技术及发展趋势浅谈
  17. Python绘制世界疫情地图
  18. Linux挂载proc文件夹,Linux中/etc/fstab /etc/mtab /proc/mounts这三个文件的分析与比较
  19. 拧巴的李想,黯淡的理想
  20. [FFmpeg]ffmpeg命令实现wma转mp3文件的音频转换

热门文章

  1. java 反编译class文件_用Java实现JVM第三章《解析class文件》
  2. python语言sort_Python里的sort语句
  3. ajax清请求过程,JS深入基础之Ajax的请求过程
  4. GitHub 创建项目
  5. 一文带你初识---虚拟dom
  6. Java List集合转换相关操作
  7. node js fork php,Node.js中execFile,spawn,exec和fork简介
  8. html5 coverflow,使用FancyCoverFlow实现3D无限循环切换视图
  9. qt程序运行时绘图出现错误
  10. 浅析Linux开发工具之Makefile