私はこれはかなり基本的だと思っていますが、Googleに正しい質問をする方法さえ分かりません。私はthis python websocket clientを使用していくつかのWebソケット接続を行っています。このタイプのPython関数に多くの引数を渡す
import websocket
import thread
import time
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
def run(*args):
ws.send("Hello")
time.sleep(1)
ws.close()
print("thread terminating...")
thread.start_new_thread(run,())
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://echo.websocket.org/",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
だから、私は何をしようとしていますがon_open
関数に複数の引数を追加している、このような何か:ちょうど私がそのページに類似したコード例を使用していると仮定しましょう
def on_open(ws, more_arg):
def run(*args):
ws.send("Hello %s" % more_arg)
time.sleep(1)
ws.close()
print("thread terminating...")
thread.start_new_thread(run,())
をしかし、私は、これらの引数を渡す方法を見つけ出すことはできませんので、私はメインスレッドで試してみました:
ws.on_open = on_open("this new arg")
しかし、私はエラーを取得:
をTypeError: on_open() takes exactly 2 arguments (1 given)
on_open
関数にこれらの新しい引数を渡す方法を教えてください。
@cᴏʟᴅsᴘᴇᴇᴅはい両方が助けたが、私は、私は1つを受け入れるより良いあなたの 'partial'使い方を好きになりました。 –