2012-12-27 50 views
1

因此,我分析這段代碼,我有理由相信這是用python 2.X編碼的,但我使用3.2並想將其轉換所以它會工作。Python 3與def函數的語法錯誤((x,y))

我遇到的第一個錯誤是用語法

def function((x,y)) 

的功能爲什麼沒有它PY3工作,有什麼辦法呢?

+6

http://www.python.org/dev/peps/pep-3113/ – YXD

回答

5

正如E先生在評論中已經說過的那樣,這個特性在Python 3中被刪除了PEP 3113。另一種方法很簡單,你只需要你手動解壓一個參數:

def func (xy): 
    x, y = xy 
    # ... 

或者你定義有兩個參數的功能,使功能的用戶解開他們的價值觀本身:

def func (x, y): 
    # ... 

t = (1, 2) 
func(*t) 

Btw。運行Python的2to3工具來轉換現有的Python 2代碼以匹配Python 3的語法和庫更改是一個好主意。

1

2to3理論上會爲你照顧這個。我說「理論上」是因爲我沒有使用它,但是大多數Python的工作原理與廣告一樣。

+0

我不知道那個工具。謝謝 :) –