這篇文檔給出了在主要的Python發行版中標準庫代碼的編碼風格。這篇文檔和PEP 257主要來自於對Guido的Python代碼風格指南論文的改動以及增長了一些Barry的風格指南的內容。python
許多項目都有它們本身的編碼風格指南。當發生編碼風格衝突的時候,特定項目的編碼風格指南優先於這裏的風格指南。ide
每一個縮進層級使用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', )
空格是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