0

このhttp://twistedmatrix.com/documents/current/core/howto/udp.htmlに続くTwistedを使用してUDPサーバーをセットアップしようとしています。

しかし、私は始めたばかりのレンガの壁にぶつかりました。私はこのサンプルコードを試しました:

from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor

class Echo(DatagramProtocol):

    def datagramReceived(self, data, (host, port)):
        print "received %r from %s:%d" % (data, host, port)
        self.transport.write(data, (host, port))

reactor.listenUDP(9999, Echo())
reactor.run()

そして私はこれを手に入れます:

def datagramReceived(self, data, (host, port)):
                                 ^
SyntaxError: invalid syntax

私はPythonを初めて使用するので、無知です。コードを最小限に抑え、クラス宣言とメソッドヘッダー(パスを追加)以外のすべてにコメントを付けましたが、同じようになりました。それらのペアのパラメーターはもうサポートされていませんか?

4

1 に答える 1

3

Python2.7でよろしいですか。PEP 3113-タプルパラメータの削除アンパックでは、Python 3でのその構文の削除について説明しているためです。テストとして、Python2.7で以下のダミー関数を実行すると機能します。Python 3.2では、まったく同じエラーが発生します。

def datagramReceived(self, data, (host, port)):
    pass

Python 3エラー:

    def datagramReceived(self, data, (host, port)):
                                     ^
SyntaxError: invalid syntax

Pythonのバージョンを確認するために、コードでこれを試してください。

import sys
print(sys.version)
于 2012-10-13T18:33:44.813 に答える