代码规范

简介: 代码规范

编码

若无特殊情况,文件一律使用 UTF-8 编码,文件头部不许加入 # -*- coding: utf-8 -*- 标识,如下所示:

# -*- coding: utf-8 -*-
……点击复制复制失败已复制


代码格式

统一使用 4个空格 进行缩进。


引号

简单说,自然语言使用双引号,机器标识使用单引号。因此,代码里多数应该使用单引号。

  • 自然语言使用双引号"……"
    例如:错误信息,很多情况下还是 Unicode ,使用 u"你好世界"
  • 机器标识使用单引号'……'
    例如: dict 里面的 key
  • 正则表达式使用原生的双引号r"……"
  • 文档字符串使用三个双引号"""……"""


空行

模块级函数和类定义之间空两行,类成员函数之间空一行,如下所示:

class A:
    def __init__(self):
        pass
    def hello(self):
        pass
def main():
    pass点击复制复制失败已复制


提示

可以使用多个空行分割多组相关的函数,或使用空行分割逻辑相关的代码。


import 语句

import 语句主要用来在程序中导入 Python标准库扩展库


import 语句应该分行书写,例如:

# 正确的写法
import os
import sys
# 不推荐的写法
import sys,os
# 正确的写法
from subprocess import Popen, PIPE点击复制复制失败已复制


import 语句最好使用绝对引用的方式,例如:

# 正确的写法
from foo.bar import Bar
# 不推荐的写法
from ..bar import Bar点击复制复制失败已复制


import 语句应该放在文件头部,至于模块说明docstring 之后,于全局变量之前。还应该按照顺序排列,每组之间用一个空行分割。例如:

import os
import sys
import msgpack
import zmq
import foo点击复制复制失败已复制


导入其他模块的类定义时,可以使用相对引入,例如:

from myclass import MyClass点击复制复制失败已复制


如果发生命名冲突,则可使用名称空间,例如:

import bar
import foo.bar
bar.Bar()
foo.bar.Bar()点击复制复制失败已复制


空格

Python 程序中,空格的使用规范非常严禁,主要有以下几点:

  • 二元运算符两边各空一格,二元运算符包括=++===>inis notand
  • 函数的参数列表中,“, ”之后要有空格
  • 函数的参数列表中,默认值等号两边不要添加空格
  • 左括号之后,右括号之前不要加多余的空格
  • 字典对象的左括号之前不要加多余的空格
  • 不要为了对齐赋值语句而使用额外的空格


换行

Python 支持括号内换行

  • 将第二行缩进到括号的起始处
foo = long_function_name(var_one, var_two,
                         var_three, var_four)点击复制复制失败已复制


  • 将第二行缩进 4个空格 ,适用于从起始括号就换行的情形
def long_function_name(
    var_one, var_two, var_three,
    var_four):
    print(var_one)点击复制复制失败已复制


  • 反斜 \ 杠换行

使用反斜杠\ 换行,二元运算符+ 等应出现在行末,长字符串也可以用此法换行。如下所示:

session.query(MyTable).\
        filter_by(id=1).\
        one()
print 'Hello,'\
        '%s %s!'%\
        ('Hary','Potter')点击复制复制失败已复制


注意

禁止使用复合语句,即禁止在一行中包含多个语句: if/for/while 一定要换行。

目录
相关文章
WK
|
11月前
|
Python
pyhon设计规范
Python设计规范涵盖代码布局、命名、注释、函数编写、模块化设计等方面,确保代码的可读性和可维护性。具体包括:使用4个空格缩进、行宽不超过79字符、变量和函数名全小写、类名首字母大写,采用驼峰命名法,添加内联注释和文档字符串,函数长度不超过20行,单一职责,明确返回值,模块化设计避免循环依赖,减少全局变量使用,遵循PEP 8规范。遵循这些规范有助于编写清晰、可读、可维护的Python代码。
WK
464 1
|
JSON 前端开发 数据格式
【前后端异常】http/https post请求 返回415错误状态码的解决方法
【前后端异常】http/https post请求 返回415错误状态码的解决方法
5811 0
|
关系型数据库 MySQL OLAP
MySQL用户如何构建实时数仓
依托数据库生态,AnalyticDB for MySQL可以给用户提供分析场景下的标准解决方案,尤其是在大数据和性能要求较高的情况下AnalyticDB for MySQL的价值可以更好的体现。
5969 0
|
9月前
|
自然语言处理 前端开发 Serverless
基于阿里云通义千问开发编程辅助与代码生成工具
随着软件开发需求的增加,编程辅助与代码生成工具成为开发者提高效率的利器。这类工具能够根据用户描述生成代码片段、协助调试、生成自动化脚本等,大大减少重复性劳动。阿里云通义千问作为一款先进的大语言模型,具备强大的自然语言处理和代码生成能力,非常适合用于开发这样的工具。
1044 3
|
2月前
|
安全 Linux API
Fmt库在CentOS 7的应用指南
Fmt库为C++提供了一个安全、高效的字符串格式化机制,尤其是对比传统的C风格字符串操作函数,Fmt库大幅提高了开发效率,减少了运行时错误。它的现代C++设计使得代码既简洁又表意清晰,大大降低了代码的维护难度。
133 11
|
6月前
|
固态存储 C++ 计算机视觉
Windows平台GIMP 2.10下载教程:零基础入门高级图像编辑
GIMP(GNU Image Manipulation Program)是一款开源跨平台图像编辑工具,支持图层管理、高级修图、色彩校正等功能,广泛应用于平面设计和照片修复。其优势包括全功能免费、插件生态丰富(600+扩展插件)、硬件要求低(1GB内存即可流畅运行)。本文详细介绍GIMP的软件定位、安装流程、首次配置及常见问题解答,帮助用户快速上手并充分利用其强大功能。
|
6月前
|
人工智能 自然语言处理 程序员
下载量突破400万,百万开发者首选的 AI 编码工具通义灵码是如何炼成的?
下载量突破400万,百万开发者首选的 AI 编码工具通义灵码是如何炼成的?
214 3
|
9月前
|
人工智能 自然语言处理 决策智能
DRT-o1:腾讯推出专注于文学翻译的 AI 模型,擅长理解比喻和隐喻等修辞手法,在翻译时保留原文的情感色彩
DRT-o1 是腾讯研究院推出的文学翻译系列 AI 模型,通过长链思考推理技术显著提升翻译质量,特别擅长处理比喻和隐喻等修辞手法。
287 2
DRT-o1:腾讯推出专注于文学翻译的 AI 模型,擅长理解比喻和隐喻等修辞手法,在翻译时保留原文的情感色彩
|
9月前
|
机器学习/深度学习 人工智能 安全
主动式智能导购AI助手构建评测
本文评测了阿里巴巴云推出的基于百炼大模型的主动式智能导购AI助手解决方案,该方案通过Multi-Agent架构实现全天候自动化服务,提升顾客购物体验。文章从部署体验、文档支持、解决方案原理、应用实例及生产环境适用性等方面进行了详细分析,指出其优势及改进建议。
225 14
|
11月前
|
存储 JavaScript 前端开发
如何使用Vue.js实现一个简单的待办事项应用
【10月更文挑战第1天】如何使用Vue.js实现一个简单的待办事项应用
273 5