欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

python需要標準嗎

李中冰2年前12瀏覽0評論

python需要標準嗎?

如果沒有特殊的編碼要求,建議在文件頭部加一行# -*- encoding: utf-8 -*-標識,聲明文件的編碼方式,當然,程序文件的編碼要和聲明的編碼保持一致,使用UTF-8編碼。

2. 縮進/空格/空行/換行等基本格式

縮進: 統一使用4個空格進行縮進。通常使用1個Tab鍵,但Tab鍵不一定使4 個空格鍵,所以有時候因此出錯。

行寬: 每行代碼盡量不超過80個字符,但不是嚴格要求80字符以內,可略微查過。如果代碼過長,說明代碼設計不太合理。除此之外也方便于在控制臺查看代碼以及通過對side-by-side的diff時有幫助。

引號:

自然語言字符串一般使用雙引號;

機器標示使用單引號,例如字典中的key;

正則表達式使用原生雙引號:r"...";

文檔字符串使用三個雙引號:"""......""",例如函數注釋,對函數參數、返回值的說明等;

空行:

模塊級函數和定義類之間空兩行

類成員函數之間空一行

例如:

class A:

def __init__(self):

pass

def hello(self):

pass

def main():

pass

1

2

3

4

5

6

7

8

9

10

11

1

2

3

4

5

6

7

8

9

10

11

(函數中可以使用空行分隔出邏輯相關的代碼)

空格:

在二元運算符兩邊各空一格[=,-,+=,==,>,in,is not, and]

# 規范

i = i + 1

submitted += 1

x = x * 2 - 1

hypot2 = x * x + y * y

c = (a + b) * (a - b)

# 不規范

i=i+1

submitted+=1

x = x*2-1

hypot2 = x*x+y*y

c = (a+b)*(a-b)

1

2

3

4

5

6

7

8

9

10

11

12

13

1

2

3

4

5

6

7

8

9

10

11

12

13

函數的參數列表中,,,#,;之后要有空格

例如

# 規范

def complex(real, imag):

pass

#不規范

def complex(real,imag):

pass

1

2

3

4

5

6

7

1

2

3

4

5

6

7

函數的參數列表中,默認值等號兩邊不要添加空格

# 規范

def complex(real, imag=0.0):

pass

# 不規范

def complex(real, imag = 0.0):

pass

1

2

3

4

5

6

7

1

2

3

4

5

6

7

左括號之后,右括號之前不要加多余的空格

# 規范

spam(ham[1], {eggs: 2})

# 不規范

spam( ham[1], { eggs : 2 } )

1

2

3

4

5

1

2

3

4

5

字典對象的左括號之前不要多余的空格

# 規范

dict['key'] = list[index]

# 不規范

dict ['key'] = list [index]

1

2

3

4

5

1

2

3

4

5

不要為對齊賦值語句而使用的額外空格

# 規范

x = 1

y = 2

long_variable = 3

# 不規范

x = 1

y = 2

long_variable = 3

1

2

3

4

5

6

7

8

9

1

2

3

4

5

6

7

8

9

換行:

Python 支持括號內的換行。這時有5種情況,如下:

(1)第二行縮進到括號的起始處

foo = long_function_name(var_one, var_two,

var_three, var_four)

1

2

1

2

(2)第二行縮進 4 個空格,適用于起始括號就換行的情

def long_function_name(

var_one, var_two, var_three,

var_four):

pass

1

2

3

4

1

2

3

4

(3)使用反斜杠\換行。二元運算符+ 、.等應出現在行末;長字符串也可以用此法換行

session.query(MyTable).\

filter_by(id=1).\

one()

print 'Hello, '\

'%s %s!' %\

('Harry', 'Potter')

1

2

3

4

5

6

7

1

2

3

4

5

6

7

(4)禁止復合語句。即一行中包含多個語句:

# 規范

do_first()

do_second()

do_third()

# 規范

do_first();do_second();do_third();

1

2

3

4

5

6

7

1

2

3

4

5

6

7

(5)if/for/while要換行。

例如if:

# 規范

if foo == 'blah':

do_blah_thing()

# 不規范

if foo == 'blah': do_blash_thing()

1

2

3

4

5

6

1

2

3

4

5

6

import語句

import 語句應該分行書寫,如:

# 規范

import os

import sys

from subprocess import Popen, PIPE

# 不規范

import sys,os

1

2

3

4

5

6

7

1

2

3

4

5

6

7

import語句應該使用 absolute import

# 規范

from foo.bar import Bar

# 不規范

from ..bar import Bar

1

2

3

4

5

1

2

3

4

5

import語句應該放在文件頭部,置于模塊說明及docstring之后,于全局變量之前

import語句應該按照順序排列,每組之間用一個空行分隔(也就是說同一類型的在一塊)

導入其他模塊的類定義時,可以使用相對導入

from myclass import MyClass

1

1

如果發生命名沖突,則可使用命名空間

import bar

import foo.bar

bar.Bar()

foo.bar.Bar()

很標準