1

だから私はこのコードを分析していて、これがpython 2.Xでコード化されていると信じる理由がありますが、私は3.2を使用していて、動作するように変換したいと思います。

私が遭遇した最初のエラーは、構文を持つ関数でした

def function((x,y))

Py3で機能しないのはなぜですか?代替手段は何ですか?

4

2 に答える 2

5

E氏がコメントですでに述べたように、この機能はPEP3113を使用してPython3で削除されました。代替手段は非常に単純で、手動で解凍する単一のパラメーターがあります。

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

または、2つのパラメーターを使用して関数を定義し、関数のユーザーが自分で値を解凍できるようにします。

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

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

ところで。Pythonの2to3ツールを実行して、既存のPython2コードをPython3の構文とライブラリの変更に一致するように変換することをお勧めします。

于 2012-12-27T00:24:15.803 に答える
1

理論的には、 2to3がこれを処理します。私はそれを使用したことがないので「理論的に」と言いますが、Pythonのほとんどは宣伝どおりに機能します。

于 2012-12-27T00:25:51.683 に答える