2013-06-26 83 views
-3

是否合法做連續作業

a = b = 3 

在Python?如果是這樣,這是不好的做法?

+4

你可以在1秒內試過。 –

+0

@MartijnPieters,但我不能嘗試第二個問題了。 – Vorac

+0

**這不是一個好的做法** – Shai

回答

3

是的,這樣做是合法的。不,這是不錯的做法。

只要考慮右邊的值表達式先評估,然後分配從左到右;首先將3分配給a,然後分配給b

assignment statement documentation

賦值語句計算表達式列表(記住,這可以是單個表達式或逗號分隔的列表,後者產生的元組)和單一的所得對象分配給每個目標列表,從左到右。

分配相同的值到所有目標。這意味着每個變量僅指一個的值。當這個值是可變的時,這很重要,就像列表或字典一樣。

+0

PEP-8針對多個表達式的建議一條線。這不是這樣的嗎? – Vorac

+0

@Vorac PEP-8上的哪個位置?我似乎無法自己找到它 – TerryA

+0

不,這不是。它是**一個** *聲明*(PEP 8警告多個聲明,而不是多個表達式)。否則,PEP 8對任務中的目標數量保持沉默。 –

7

是的,只是看出來這樣的東西:

a = b = [] 
a.append(2) 
print a 
print b 

打印:

[2] 
[2] 

但除此之外,它的罰款。 @Martijn在他的回答中有很多信息,所以請查看:)。

+0

被困住了,並調試了半個小時... –

+0

@ kawing-chiu只有半個小時?我會花幾個小時弄清楚 – TerryA