002.[python学习]python编码规范pep8学习——PEP8第一部分代码布局

关于PEP8的详细说明可以参考官方原文:http://legacy.python.org/dev/peps/pep-0008/

我参考官方文档及其他文章,摘出相关内容而得此文章,具体参考其他文章见文中最后参考资料处。

当想要让自己所写的代码为更多人使用、交流学习时,不能写出只有机器认识的代码,而是对于人而言具有良好的可读性,此时就需要遵从一个公共的约束来规范自己的代码,那么《Style Guide for Python Code(PEP8)》是个很好的选择。

首先PEP8中声明,有以下有理由忽略特定的规范:

使用规范会降低代码可读性可不遵守;

为了与其他代码保持一致可以不遵守规范(这种情况也许是历史原因);

因为代码早于引进规范并且没有必要理由去修改代码时,可以不遵守规范;

代码需要兼容不支持代码风格建议的旧版本python时可不遵守。

1 代码布局

1.1    缩进

每个缩进使用4个空格。

python是靠缩进区分语句块的,语句块缩进不正确是无法通过语法检查的,这种是必须遵守的;

跨行的语句需要遵守下面规范(英语不行,暂时就不翻译了,意会下):

Continuation lines should align wrapped elements either vertically using Python‘s implicit line joining inside parentheses, brackets and braces, or using a hanging indent [7]. When using a hanging indent the following should be considered; there should be no arguments on the first line and further indentation should be used to clearly distinguish itself as a continuation line.

指的是续行应该和括起来的内容垂直对齐,或者使用叫hanging indent的格式。

下面是符合规范的例子:

 1 # Aligned with opening delimiter.
 2 foo = long_function_name(var_one, var_two,
 3                          var_three, var_four)
 4
 5 # More indentation included to distinguish this from the rest.
 6 def long_function_name(
 7         var_one, var_two, var_three,
 8         var_four):
 9     print(var_one)
10
11 # Hanging indents should add a level.
12 foo = long_function_name(
13     var_one, var_two,
14 var_three, var_four)
15 # Hanging indents *may* be indented to other than 4 spaces.
16 foo = long_function_name(
17   var_one, var_two,
18   var_three, var_four)
19 # No extra indentation.
20 if (this_is_one_thing and
21     that_is_another_thing):
22     do_something()
23
24 # Add a comment, which will provide some distinction in editors
25 # supporting syntax highlighting.
26 if (this_is_one_thing and
27     that_is_another_thing):
28     # Since both conditions are true, we can frobnicate.
29     do_something()
30
31 # Add some extra indentation on the conditional continuation line.
32 if (this_is_one_thing
33         and that_is_another_thing):
34     do_something()
35 my_list = [
36     1, 2, 3,
37     4, 5, 6,
38     ]
39 result = some_function_that_takes_arguments(
40     ‘a‘, ‘b‘, ‘c‘,
41     ‘d‘, ‘e‘, ‘f‘,
42     )
43 my_list = [
44     1, 2, 3,
45     4, 5, 6,
46 ]
47 result = some_function_that_takes_arguments(
48     ‘a‘, ‘b‘, ‘c‘,
49     ‘d‘, ‘e‘, ‘f‘,
50 )

下面是不符合规范的例子:

1 # Arguments on first line forbidden when not using vertical alignment.
2 foo = long_function_name(var_one, var_two,
3     var_three, var_four)
4
5 # Further indentation required as indentation is not distinguishable.
6 def long_function_name(
7     var_one, var_two, var_three,
8     var_four):
9     print(var_one)

1.2     使用tab还是空格

空格是更好的选择,尽量不要空格和tab混用。Python3中不允许混用的方式,python2中可以使用-t或-tt参数进行检查,混用时前者会产生警告,后者会产生错误。

1.3    单行最大长度79个字符

1.4    空白行:顶级函数和类定义之间使用两个空白行,类中函数定义之间使用单个空白行。

1.5    源文件编码格式:官方说python3用UTF-8,python2用ASCII,我觉得最好都用UTF-8。

1.6    模块导入应该单号导入一个,除from xxx import a, b这种外;导入语句应该放在源文件最前面,紧跟着模块注释和文档描述之后,在模块全局变量和常量之前。模块应按照顺序导入:最先导入系统标准模块,再导入相关第三方模块,最后导入本地自己编写的模块。

时间: 2024-11-08 22:17:15

002.[python学习]python编码规范pep8学习——PEP8第一部分代码布局的相关文章

python 的一些编码规范

1,代码的布局...最好4个空格一个缩进层次,不要用tab,用空格 2,行的最大长度...建议最大79字符,折叠长行首选的方法是使用反斜杠比较好看... 3,空行.... 3.1...用两行空行风格顶层函数和类的定义,类内的方法用单个空行分割 3.2..当空行用于分割方法的定义时,在class行和第一个方法定义之间也要有一个空行 4,导入, no:import sys,os yes: import sys import os 5,空格 5.1:   建议不要在以下地方出现空格:1,紧挨着圆括号,

Python最简编码规范

前言 本文是阅读<Python Coding Rule>之后总结的最为精华及简单的编码规范,根据每个人不同喜好有些地方会有不同的选择,我只是做了对自己来说最简单易行的选择,仅供大家参考. 重要原则 保持风格的一致性很重要,但最重要的是:知道何时不一致 打破一条既定规则的两个好理由: 当应用规则会导致代码可读性下降(可读性赛高) 为了和周围代码保持一致而打破规则(历史遗留) 最简规范 只使用空格缩进 使用UTF-8编码 每行只写一条语句 使用行末反斜杠折叠长行,限制每行最大79字符 导入包:每行

Python PEP 8 编码规范中文版

原文链接:http://legacy.python.org/dev/peps/pep-0008/ 转发链接:https://blog.csdn.net/ratsniper/article/details/78954852 Introduction 介绍 A Foolish Consistency is the Hobgoblin of Little Minds 尽信书则不如无书 Code lay-out 代码布局 Indentation 缩进 Tabs or Spaces 制表符还是空格 Max

PHP编码规范建议学习

###php编码规范 -------* sql过长 ```$sql = <<<SQLSELECT delivery_idFROM d_testWHERE delivery_idIN (123,234)GROUP BY delivery_idHAVING SUM(send_number) <= 0;SQL;```* if等控制结构条件过长 ```if ($a > 0 && $b > 0 && $c > 0 && $d

Java学习:编码规范

package(包) 包名的命名规范:1.小写 2.至少有一层目录 3.域名倒置书写 package baidu; package com.baidu.www; Class(类)-----大驼峰法 类名的命名规范:所有单词首字母大写 class Mobile class TestMobile Interface(接口) 接口的命名规范:所有单词首字母大写 interface Animal; Method(方法) 方法的命名规范:第一个单词首字母小写,其他单词的首字母都大写 testDemo()

Python PEP8 编码规范中文版-译自官网文件

写在前面(自补):初听PEP8一头雾水,不知所谓.啥是PEP8?为啥叫PEP8?PEP8是干啥的?-先了解下PEP吧. PEP是什么? PEP的全称是Python Enhancement Proposals,其中Enhancement是增强改进的意思,Proposals则可译为提案或建议书,所以合起来,比较常见的翻译是Python增强提案或Python改进建议书. 我个人倾向于前一个翻译,因为它更贴切.Python核心开发者主要通过邮件列表讨论问题.提议.计划等,PEP通常是汇总了多方信息,经过

学习Python,来点PEP吧!

或许你是一个初入门Python的小白,完全不知道PEP是什么.又或许你是个学会了Python的熟手,见过几个PEP,却不知道这玩意背后是什么.那正好,本文将系统性地介绍一下PEP,与大家一起加深对PEP的了解. 目前,国内各类教程不可胜数,虽然或多或少会提及PEP,但笼统者多.局限于某个PEP者多,能够详细而全面地介绍PEP的文章并不多. 本文的目的是:尽量全面地介绍PEP是什么,告诉大家为什么要去阅读PEP,以及列举了一些我认为是必读的PEP,最后,则是搜罗了几篇PEP的中文翻译,希望能为Py

IT兄弟连 Java语法教程 注释与编码规范

在程序代码中适当地添加注释可以提高程序的可读性和可维护性.好的编码规范可以使程序更易阅读和理解.下面将介绍Java中的集中代码注释以及应该注意的编码规范. 代码注释 通过在程序代码中添加注释可提高程序的可读性.注释中包含了程序的信息,可以帮助程序员更好的阅读和理解程序.在Java源程序文件的任意位置都可添加注释语句.注释中的文字Java编译器不进行编译,所有代码中的注释文字对程序不产生任何影响.Java语言提供了3种添加注释的方法,分别为单行注释.多行注释和文档注释. ●  单行注释 “//”为

学习 python 编写规范 pep8 的问题笔记

决定开始Python之路了,利用业余时间,争取更深入学习Python.编程语言不是艺术,而是工作或者说是工具,所以整理并遵循一套编码规范是十分必要的.所以今天下午我根据PEP 8整理了一份,以后都照此编码了,还会持续更新. PEP8 Python 编码规范 一 代码编排1 缩进.4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格.2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号.换行点要在操作符的后边敲回车.3 类和top-level函数定义之间空两行:类