我會小心決定避免使用元組而不是使用列表。你有沒有使用dis模塊?看什麼Python是在字節碼級做,當你做一個清單詩句做一個元組:
>>> def f():
... x = [1,2,3,4,5,6,7]
... return x
...
>>> def g():
... x = (1,2,3,4,5,6,7)
... return x
...
>>> import dis
>>> dis.dis(f)
2 0 LOAD_CONST 1 (1)
3 LOAD_CONST 2 (2)
6 LOAD_CONST 3 (3)
9 LOAD_CONST 4 (4)
12 LOAD_CONST 5 (5)
15 LOAD_CONST 6 (6)
18 LOAD_CONST 7 (7)
21 BUILD_LIST 7
24 STORE_FAST 0 (x)
3 27 LOAD_FAST 0 (x)
30 RETURN_VALUE
>>>
>>>
>>> dis.dis(g)
2 0 LOAD_CONST 8 ((1, 2, 3, 4, 5, 6, 7))
3 STORE_FAST 0 (x)
3 6 LOAD_FAST 0 (x)
9 RETURN_VALUE
雖然它可能永遠不會在一個GUI應用程序的問題(如你的例子似乎是),出於性能的原因你可能想要在代碼中的任何地方小心謹慎。
我喜歡你寫它的方式,似乎更加明確定義imo。 – jamylak
Python不是「做從列表到元組的類型轉換」。這是[鴨子打字](http://en.wikipedia.org/wiki/Duck_typing)在行動:大概'window.set_pos'需要一個序列的兩個項目,但不一定是2 -'tuple'(我假設因爲我不知道'window.set_pos'來自哪裏或者它是幹什麼的)。 – Chris
重寫該函數以獲取兩個參數而不是一個2元組。 –