返回顶部
首页 > 资讯 > 后端开发 > Python >python 开发规范 预览版
  • 535
分享到

python 开发规范 预览版

预览版python 2023-01-31 06:01:16 535人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

本文主要参考 pep8和jumpserver开发规范,结合实际,进行修改,欢迎提出修改意见。 代码检查工具 pylint PyCharm --> code --> RefORMat Code 格式化当前文件代码格式 pyc

本文主要参考 pep8和jumpserver开发规范,结合实际,进行修改,欢迎提出修改意见。

代码检查工具

  • pylint
  • PyCharm --> code --> RefORMat Code 格式化当前文件代码格式
  • pycharm --> 右击项目 --> Inspect Code 根据pep8格式检查当前项目

基本的代码布局

导入

import x
from x import y
from x import y as z

禁止import  x,y

异常

使用 as

try:
    raise Error
except Error as error:
    pass

缩进

1. python 严格采用4个空格的缩进,任何 Python 代码都都必须遵守此规定。
2. 字符,    后面空一个格

最大行长度

限制最大120个字符。

长语句缩进

编写长语句时,可以使用换行符""换行。在这种情况下,下一行应该与上一行的最后一个“.”句点或“=”对齐,或者是缩进4个空格符。

this_is_a_very_long(function_call, 'with many parameters') \
    .that_returns_an_object_with_an_attribute

MyModel.query.filter(MyModel.Scalar > 120) \
             .order_by(MyModel.name.desc()) \
             .limit(10)

如果你使用括号“()”或花括号“{}”为长语句换行,那么下一行应与括号或花括号对齐:

this_is_a_very_long(function_call, 'with many parameters',
                    23, 42, 'and even more')

对于元素众多的列表或元组,在第一个“[”或“(”之后马上换行:

items = [
    'this is the first', 'set of items', 'with more items',
    'to come in this line', 'like this'
]

空行

顶层函数与类之间空两行,此外都只空一行。不要在代码中使用太多的空行来区分不同的逻辑模块。

def hello(name):
    print('Hello %s!' % name)

class MyClass(object):
    """This is a simple docstring."""

    def __init__(self, name):
        self.name = name

    def get_annoying_name(self):
        return self.name.upper() + '!!!!111'

空格规则

单目运算符与运算对象之间不空格(例如,-,~等),即使单目运算符位于括号内部也一样。
双目运算符与运算对象之间要空格

exp = -1.05
value = (item_value / item_count) * offset / exp
value = my_list[index]
value = my_dict['key']

字符格式化

使用 f'{name}{value}'

比较

  • 任意类型之间的比较,使用“isinstance(L, list)”和“not isinstance(L, list)”
  • 与单例(singletons)进行比较时,使用 is 和 is not。
  • 永远不要与True或False进行比较(例如,不要这样写:foo == False,而应该这样写:if not foo)。
  • 否定成员关系检查, 使用 foo not in bar,而不是 not foo in bar。

命名约定

  • 类名称:采用骆驼拼写法(CamelCase。
  • 变量名:小写_以及_下划线(lowercase_with_underscores)。
  • 方法与函数名:小写_以及_下划线(lowercase_with_underscores)。
  • 常量:大写_以及_下划线(UPPERCASE_WITH_UNDERSCORES)。
  • 预编译的正则表达式:name_re。
  • 受保护的元素以一个下划线为前缀。双下划线前缀只有定义混入类(mixin classes)时才使用。
  • 如果使用关键词(keyWords)作为类名称,应在名称后添加后置下划线(trailing underscore)。 允许与内建变量重名,不要在变量名后添加下划线进行区分。如果函数需要访问重名的内建变量,请将内建变量重新绑定为其他名称。
  • 命名要有寓意, 不使用拼音,不使用无意义简单字母命名 (循环中计数例外 for i in)
  • 命名缩写要谨慎, 尽量是大家认可的缩写
  • 尽量 避免使用全局变量, 用类变量来代替

函数和方法的参数:

  • 类方法:cls 为第一个参数。
  • 实例方法:self 为第一个参数。
  • property函数中使用匿名函数(lambdas)时,匿名函数的第一个参数可以用 x 替代, 例如:display_name = property(lambda x: x.real_name or x.username)。
  • 禁止参数里面 直接写 字符id,用其他替代,例如 asset_id

文档注释(Docstring,即各方法,类的说明文档注释)

所有文档字符串均以 reStructuredText 格式编写,方便 Sphinx 处理。文档字符串的行数不同,布局也不一样。 如果只有一行,代表字符串结束的三个引号与代表字符串开始的三个引号在同一行。 如果为多行,文档字符串中的文本紧接着代表字符串开始的三个引号编写,代表字符串结束的三个引号则自己独立成一行。 (有能力尽可能用英文, 否则请中文优雅注释)


def foo():
    """This is a simple docstring."""

def bar():
    """This is a longer docstring with so much information in there    
    that it spans three lines.  In this case, the closing triple quote    
    is on its own line.    
    """

文档字符串应分成简短摘要(尽量一行)和详细介绍。如果必要的话,摘要与详细介绍之间空一行。

注释(Comment)类 函数 注释

def AvailableZones(self, instance_charge_type, region_id):
    """
    功能: 可用区
    :param instance_charge_type: 计费方式
    :param region_id:    地域
    :return:  ['cn-huhehaote-a', 'cn-huhehaote-b']
    """

模块头部

模块文件的头部包含有 utf-8 编码声明(如果模块中使用了非 ASCII 编码的字符,建议进行声明),以及标准的文档字符串。

#!/usr/bin/env python3.6
# -*- coding: utf-8 -*-

参考:Http://docs.jumpserver.org/zh/docs/python_style_guide.html

--结束END--

本文标题: python 开发规范 预览版

本文链接: https://lsjlt.com/news/189524.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python 开发规范 预览版
    本文主要参考 pep8和jumpserver开发规范,结合实际,进行修改,欢迎提出修改意见。 代码检查工具 pylint pycharm --> code --> Reformat Code 格式化当前文件代码格式 pyc...
    99+
    2023-01-31
    预览版 python
  • python开发规范有哪些
    Python开发规范通常包括以下几个方面:1. 命名规范:使用有意义的变量、函数和类名,采用下划线命名法(例如:my_variabl...
    99+
    2023-09-22
    python
  • sql开发规范
    (预编译的好处:1.可以重复使用执行计划,减少sql编译所需时间。2.一次解析多次使用。3.避免sql注入。)(列和参数类型不一致时,会造成隐式转换)        not in可能造成索引失效      ...
    99+
    2024-04-02
  • MongoDB开发规范
    一.命名规则 1.mongodb版本选择:默认新装数据库使用MongoDB 3.X 社区版。建议3.2.10+ 2.数据库设计规范数据库名可以是满足以下条件的任意UTF-8字符串:(1)不能出现除“_”...
    99+
    2024-04-02
  • java开发规范
    所有的程序开发手册都包含了各种规则。一些习惯自由程序人员可能对这些规则很不适 应,但是在多个开发人员 共同写作的情况下,这些规则是必需的。这不仅仅是为了开 发效率来考虑,而且也是为了后期维护考虑。 命名规范 定义这个规范的目的是让项目中所有...
    99+
    2023-06-03
  • Win10本月将发布两款预览版:win10新预览版+移动预览版
    根据现有的消息,微软将在本月发布面向桌面的Windows 10新预览版,而首个Windows 10移动预览版也已经箭在弦上,蓄势待发。那是否有可能微软在本月同时放出这两个重磅炸弹呢微软的Gabriel Aul又在推特上回...
    99+
    2023-06-11
    Win10预览版 Win10移动端 win10 预览 预览版 移动 Win10
  • Python开发规范及文件命名
    常用目录 目录名 作用 log 日志目录 conf 配置目录 core 核心代码 libs/modules 第三方库 docs 文档库 README 帮助文档 bin 启动入口,存放可执行文...
    99+
    2023-01-31
    文件 Python
  • PHP开发规范与PSR4命名空间规范
    引言:PHP作为一种广泛应用的编程语言,在开发过程中遵守规范是非常重要的,不仅可以提高代码的可读性和可维护性,还能提高团队协作效率。在本文中,我们将探讨PHP开发规范以及PSR-4命名空间规范,并且提供一些具体的代码示例。一、PHP开发规范...
    99+
    2023-10-21
    编程关键词 PHP开发规范 PSR命名空间规范
  • JAVA开发ORACLE的规范
    原文:https://blog.51cto.com/15057847/2650042...
    99+
    2017-08-06
    JAVA开发ORACLE的规范 数据库入门 数据库基础教程
  • 苹果 macOS 13.5 开发者预览版 Beta 3 发布
    苹果今日向 MAC 电脑用户推送了 macOS 13.5 开发者预览版 Beta 3 更新(内部版本号:22G5048d),本次更新距离上次发布隔了 15 天。 已经注册的开发者可以访问 Apple Developer...
    99+
    2023-06-16
    macOS macOS13.5 开发者版
  • MySQL开发规范之我见
      大多数MySQL规范在网上也都能找得到相关的分享,在这里要分享的是老叶个人认为比较重要的,或者容易被忽视的,以及容易被混淆的一些地方。   1、默认使用InnoDB引擎   【老叶观点】已多次呼...
    99+
    2022-05-18
    MySQL
  • MySQL生产库开发规范
    MySQL开发规范文件状态:[  ] 草稿[√] 正式发布[  ] 正在修改 文件标识:  当前版本: V1.0 作 &nbs...
    99+
    2024-04-02
  • INFORMATICA 开发规范有哪些
    INFORMATICA 开发规范有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。  ETL研发运维责任人界定 &nbs...
    99+
    2024-04-02
  • MySQL有哪些开发规范
    这期内容当中小编将会给大家带来有关MySQL有哪些开发规范,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 #MySQL开发规范 ##命名规范 ...
    99+
    2024-04-02
  • MySQL开发规范有哪些
    这篇文章将为大家详细讲解有关MySQL开发规范有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。基础规范使用innodb存储引擎表字符集使用utf-8所有表添加注释单表...
    99+
    2024-04-02
  • Redis开发规范有哪些
    这篇文章主要介绍“Redis开发规范有哪些”,在日常操作中,相信很多人在Redis开发规范有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis开发规范有哪些”的疑惑...
    99+
    2024-04-02
  • mongodb开发规范有哪些
    1. 命名规范:- 集合(Collection)名应使用小写字母和下划线组成,如:users, orders。- 字段(Field)...
    99+
    2023-09-04
    mongodb
  • Redis的开发规范有哪些
    本篇内容主要讲解“Redis的开发规范有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis的开发规范有哪些”吧!一、键值设计1、key名设计可读性和可...
    99+
    2024-04-02
  • 阿里开发手册规范(JAVA)
    目录 一、编程规约  (一) 命名规范 (二) 常量定义 (三) 代码格式  (四) OOP规约 (五) 日期时间 (六) 集合处理  (七) 并发处理 (八) 控制语句 (九) 注释规约 (十) 前后端规约 二、异常日志  (一) 错误码...
    99+
    2023-09-10
    java 开发语言
  • uniapp开发小程序的开发规范总结
    目录一、项目结构二、开发规范遵循Vue 单文件组件 (SFC) 规范组件及接口规范三、css样式规范全局样式与局部样式尺寸响应式字体的使用请使用flex布局方式总结一、项目结构 在完...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作