PEP 8 -- Python代碼風格指南

介紹

    這篇文檔給出了在主要的Python發行版中標準庫代碼的編碼風格。這篇文檔和PEP 257主要來自於對Guido的Python代碼風格指南論文的改動以及增長了一些Barry的風格指南的內容。python

    許多項目都有它們本身的編碼風格指南。當發生編碼風格衝突的時候,特定項目的編碼風格指南優先於這裏的風格指南。ide

Code lay-out

縮進

    每一個縮進層級使用4個空格。ui

 連續行應當被正確的排列,或者用Python中精確的行垂直的來排列括弧裏面的元素,或者使用懸掛式縮進的來排列。當懸掛式縮進的方式被採用時,下面的狀況應當被考慮。在第一行中應該沒有參數,而且後續的縮進應當清楚的將本身標記爲一個連續行。this

#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表達式的關係。看看下面的狀況。spa

# 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」爲縮進方式的狀況。rest

  Python3不容許混合「Tab」和空格做爲縮進方式。code

  Python2中代碼縮進混合了「Tab」和空格的,「Tab」將會被轉化成空格。當使用-t參數調用python2命令行解析器,解析器將會報出代碼在縮進的過程當中非法混合了「Tab」和空格的警告。當使用-tt,這些警告將會變成錯誤。這些參數被極力推薦。three

 

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

 

 

 

【參考連接】

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

相關文章
相關標籤/搜索