您现在的位置是:首页 > 正文

Python代码编写规范

2024-01-30 23:12:47阅读 1

Python代码编写规范

一、检查代码规范性的常用工具

  1. 安装PEP8检查程序:pip install pycodestyle

二、Python代码布局规范

  1. 缩进
    (1) 每一级缩进使用4个空格(首选)
    (2) 不允许同时使用空格和制表符的缩进
    (3) 制表符只能用于与同样使用制表符缩进的代码保持一致
    (4) 不要使用Tab缩进

  2. 行的最大长度
    (1) 所有行限制的最大字符数为79
    (2)没有结构化限制的大块文本(文档字符或者注释),每行的最大字符数限制在72
    (3)需要保证在不拖动Pycharm滑动块的情况下能阅读代码
    (4)代码是在过长,推荐使用"()"进行换行,而不是“\”

  3. 插入空行
    (1)顶层函数和类的定义,前后用两个空行隔开
    (2)类里的方法定义用一个空行隔开
    (3)变量赋值和导入声明之间插入空行,分割语义

  4. 代码保持紧凑
    (1)有关联的代码要保持紧凑
    (2)比如if和else之间没有必要插入空行
    (3)函数调用尽量放在一起

  5. imports 导入
    (1)导入通常在分开的行
    例如:
    推荐:
    import os
    import sys
    不推荐:
    import sys, os
    (2)导入总是位于文件的顶部,在模块注释和文档字符串之后,在模块的全局变量和常量之前
    例如:
    from urlib import request, parse
    (3)避免通配符的导入(from numpy import *),因为这样做会不知道命名空间中存在那些名字,会使得读取接口和许多自动化工具之间产生混淆

  6. 表达式和语句中空格
    (1)避免使用无关的空格:紧跟在小括号、中括号或者大括号后;紧跟在逗号、分号或者冒号之前;紧跟在函数参数的左括号之前
    (2)总是在二元运算符两边加一个空格:赋值(=);增量赋值(+=,-=);比较(==、<、> 等);布尔(and 、or、not)
    (3)在制定关键字参数或者默认参数值的时候,不要在=附近加上空格
    (4)避免在同一行中的多个语句

  7. python编码命名规范
    暴露给用户的API结构的命名,应该遵循反应使用使用场景,而不是实现场景。
    命名原则:
    (1)使用英文单词命名,除非是习惯用的简拼,不要使用英文简拼
    (2)不要害怕过长的命名变量
    (3)避免重复使用变量名表示不同对象
    (4)不能使用内建名称,使其在当前命名空间被屏蔽
    (5)避免使用o(与0混淆)和I(与1混淆)
    (6)避免使用大小写区分不同的对象
    (7)使用下划线分割小写单词以提高可读性
    (8)特殊格式
    在这里插入图片描述
    (9)包名和模块名:模块应该用简短全小写的名字,如果为了提升可读性,下划线也是可以用的。python包名也是应该使用简短全小写的名字,但不建议用下划线
    (10)Class Name类名:类名一般使用首字母大写的约定。在接口被文档化并且主要被用于调用的情况下,可以使用函数的命名风格代替。(注意:对于内置的变量命名有一个单独的约定:大部分内置变量是单个单词(或者两个单词连接在一起),首字母大写的命名大只用于异常名或者内部的常量)
    (11)Exception Names异常名:因为异常一般都是类,所有类的命名方法在这里也适用。然而,你需要在异常名后面加上“Error”后缀(如果异常确实是一个错误)
    (12)Function Names函数名:
    函数名应该小写,如果想提高可读性可以下划线分隔。大小写混合仅在为了兼容原来主要以大小写混合的风格的情况下使用(比如threading.py),保持向后兼容性
    (13)Function and method arguments 函数和方法参数:始终要将self作为实例方法的第一个参数;始终要将cls作为静态方法的第一个参数
    (14)Constants常量:常量通常定义在模块级,通过下划线分隔的全大写字母命名。
    8.python注释原则
    (1)注释分类:块注释(#单独一行)、行注释(#在代码后面)、文档注释(‘’‘’‘’ ‘’‘’‘’)

参考链接:https://www.bilibili.com/video/BV1Tx411Z7A9?p=3&vd_source=871d6bf079e0e1f9befc62eafed87009

网站文章

  • Java开发琐碎语法(长期更新)

    1、List赋初值可使用:Arrays.asList(0.1, 0.25, 0.5, 0.75, 0.9);3、BigDecimal的加减乘除:add、subtract、multiply、divide...

    2024-01-30 23:12:42
  • 简单的打字游戏心得体会(代码)

    生成字母: Ø 可以用label ,span等标签将字母包里面,因为这些标签的范围正好是标签内的文本的大小,而,div或者p标签则会使整行的区域都包括,需要设置样式,所以在这选择的是label。var...

    2024-01-30 23:12:35
  • 服务器阻止了对组件 ad,解决SQL Server 阻止了对组件Ad Hoc Distributed Queries访问的方法...

    服务器阻止了对组件 ad,解决SQL Server 阻止了对组件Ad Hoc Distributed Queries访问的方法...

    今天单位一ASP.NET网站,里面有个功能是导出数据,发现一导出就报错,报错内容是:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Dis...

    2024-01-30 23:12:04
  • 运维体系管理16-线上环境建设,要扛得住真刀真枪的考验

    运维体系管理16-线上环境建设,要扛得住真刀真枪的考验

    我们简单构建一张模型图来对线上环境作个展示:我在这两期文章中介绍了这么多环境,我们可以看到,环境建设是一项异常繁琐复杂的工作,这些工作不是一蹴而就,而是根据实际的场景和问题催生出来的,所以是个逐步渐进...

    2024-01-30 23:11:56
  • 家庭影院的Dolby音效如何设置

    Speaker Setup Guides for Your HomeSet up your home theater system to ensure optimum performance.  1.   Traditional surround  2.   Dolby ATMOS enabled

    2024-01-30 23:11:51
  • 关于Struts2返回XML,JSON格式配置记录

    Struts2返回XML格式 1.struts.xml里面的配置package extends=&quot;struts-default&quot; 或者extends=&quot;json-defa...

    2024-01-30 23:11:22
  • OpenCV Java入门三 Mat的基本操作

    环境好了,我们就可以进入正文了。 在之前入门一、二中分别已经有画图的两个例子了。但没有细节展开我们的代码和OpenCV到底在干什么。 使用OpenCV时你需要补充的知识 你需要熟练使用Java Swi...

    2024-01-30 23:11:15
  • es6 模块的 导出 export { default } from 'foo';

    export { default } from 'foo';export的东西 是让本页面用的 是最终点是消费者

    2024-01-30 23:11:07
  • odoo12 修改页面标题及图标

    odoo12 修改页面标题及图标

    首先在首页页面上按F12打开Elements 不难发现里面有一个titile标签,这就是我们需要改的地方 那么此时就要用到odoo的页面继承与xpath来改写title标签,那么既然需要继承就需要找到...

    2024-01-30 23:11:01
  • 自动驾驶是用Python实现的?你敢用吗?

    自动驾驶是用Python实现的?你敢用吗?

    相比于我在之前文章中使用过的模拟器CARLA,highway-env环境包明显更加抽象化,用类似游戏的表示方式,使得算法可以在一个理想的虚拟环境中得到训练,而不用考虑数据获取方式、传感器精度、运算时长等现实问题。对于端到端的算法设计和测试非常友好,但从自动控制的角度来看,可以入手的方面较少,研究起来不太灵活。且需完整代码关注公众号:Python源码 即可领取。...

    2024-01-30 23:10:31