文档章节

PEP 8 -- Python代码风格指南

大培哥
 大培哥
发布于 2017/05/25 16:48
字数 752
阅读 29
收藏 0

介绍

    这篇文档给出了在主要的Python发行版中标准库代码的编码风格。这篇文档和PEP 257主要来自于对Guido的Python代码风格指南论文的改动以及增加了一些Barry的风格指南的内容。

    许多项目都有它们自己的编码风格指南。当发生编码风格冲突的时候,特定项目的编码风格指南优先于这里的风格指南。

Code lay-out

缩进

    每个缩进层级使用4个空格。

 连续行应当被正确的排列,或者用Python中精确的行垂直的来排列括弧里面的元素,或者使用悬挂式缩进的来排列。当悬挂式缩进的方式被采用时,下面的情况应当被考虑。在第一行中应该没有参数,并且后续的缩进应当清楚的将自己标记为一个连续行。

#yes
# Aligned with opening delimiter.
foo = long_function_name(var_one, var_two,
                         var_three, var_four)

#More indentaion included to distinguish this from the rest.
def long_function_name(
        var_one, var_two, var_three,
        var_four):
    print(var_one)

# Hanging indents should add a level. 
foo = long_function_name(
    var_one, var_two,
    var_three, var_four)

对于连续行而言,four-space规则是可选的。

当if表达式的条件部分足够长,被要求写到多行中去。可以这样去做if后面接一个空格,接一个括号,下面的连续行采用四个空格缩进的方式。这样可以很显式的去表明if表达式的关系。看看下面的情况。

# No extra indentation.
if (this_is_one_thing and
    that_is_another_thing):
    do_something()

# Add a comment , which will provide some distinction in editors
# supporting syntax highlighting.
if (this_is_one_thing and
    that_is_another_thing):
    # Since both conditions are true, we can frobnicate.
    do_something()

# Add some extra indentation on the conditional continuation line.
if (this_is_one_thing
        and that_is_another_thing):
    do_something()

列表表达式的多行方式也有下面的两种形式。

my_list = [
    1, 2, 3,
    4, 5, 6,
    ]

result = some_function_that_takes_arguments(
    'a', 'b', 'c',
    'd', 'e', 'f',
    )
或者
my_list = [
    1, 2, 3,
    4, 5, 6,
]

result = some_function_that_takes_arguments(
    'a', 'b', 'c',
    'd', 'e', 'f',
)

 

Tabs or Spaces

    空格是Python中推荐的缩进方法。Tab有时候也会用到,但仅仅是为了去对付原有代码以“Tab”为缩进方式的情况。

  Python3不允许混合“Tab”和空格作为缩进方式。

  Python2中代码缩进混合了“Tab”和空格的,“Tab”将会被转化成空格。当使用-t参数调用python2命令行解析器,解析器将会报出代码在缩进的过程中非法混合了“Tab”和空格的警告。当使用-tt,这些警告将会变成错误。这些参数被极力推荐。

 

tomorrow will be better , 有空再慢慢补充。

 

 

 

【参考链接】

https://www.python.org/dev/peps/pep-0008/#indentation

© 著作权归作者所有

共有 人打赏支持
大培哥
粉丝 5
博文 31
码字总数 29758
作品 0
浦东
程序员
私信 提问
Python 常用静态代码检查工具简介

对于我这种习惯了 Java 这种编译型语言,在使用 Python 这种动态语言的时候,发现错误经常只能在执行的时候发现,总感觉有点不放心。 而且有一些错误由于隐藏的比较深,只有特定逻辑才会触发...

不正经程序员
07/24
0
0
python基础autopep8__python代码规范

关于PEP 8 PEP 8,Style Guide for Python Code,是Python官方推出编码约定,主要是为了保证 Python 编码的风格一致,提高代码的可读性。 官网地址:https://www.python.org/dev/peps/pep-0...

_周小董
05/01
0
0
Python中必读的PEP提案

什么是PEP PEP 是 Python 增强提案(Python Enhancement Proposal)的缩写。社区通过PEP来给 Python 语言建言献策,每个版本你所看到的新特性和一些变化都是通过PEP提案经过社区决策层讨论、投...

刘志军
08/08
0
0
[雪峰磁针石博客]python代码风格指南(PEP8中文版)

本文给出主Python版本标准库的编码约定。CPython的C代码风格参见PEP7。 本文和PEP 257 文档字符串标准改编自Guido最初的《Python Style Guide》, 并增加了Barry的GNU Mailman Coding Style ...

磁针石
08/21
0
0
让 Python 代码更易维护的七种武器

检查你的代码的质量,通过这些外部库使其更易维护。 可读性很重要。 — Python 之禅The Zen of Python,Tim Peters 随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至...

11%
09/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

&和&&,==和equals的区别

&和&& 相同点:都可以表示逻辑与(and),当运算符两边的结果都为true时,结果才为true,只要有一边为false,结果就为false。 不同点:&&还有短路的作用,即如果第一个表达式的结果为false,就...

森林之下
10分钟前
0
0
我和 Spring 大神的一天

摘要: 先介绍一下故事的5位主人公。 Josh Long 龙之春:Spring 技术布道师,撰写过5部著作,录制过3部畅销的培训视频,是一位开源软件贡献者。 Spencer Gibb:Spring 技术布道师,Spring Cl...

阿里云官方博客
12分钟前
0
0
【Zookeeper】源码分析目录(保存)

https://www.cnblogs.com/leesf456/p/6518040.html

Java搬砖工程师
16分钟前
0
0
vue-cli图片路径使用

https://www.cnblogs.com/minigrasshopper/p/8011630.html

LM_Mike
16分钟前
0
0
前方高能,重要通知!明珠不蒙尘,有才你就来。

11月开源众包服务之星计划--开发商招募正式开启了! 您还是否在为能接更多的订单而操碎了心? 开源众包即将迎来三周年华诞,重磅上线服务之星品牌计划。你有强大的技术实力?你有丰富的案例经...

开源中国众包平台
18分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部