私は機能を持っています:
def sendMessage(s, message):
messageTemp = "PRIVMSG #" + CHANNEL + " :" + message
s.send((messageTemp + "\r\n").encode())
この関数を使用して、twitchサーバーのチャットに単一のメッセージを出力できますが、次のように変数を含むメッセージを出力する場合は、次のようになります。
sendMessage(s, var1, "message1", var2, "message2")
エラーが発生します:TypeError: sendMessage() takes 2 positional arguments but 5 were given
。
関数では、によって制限されていることは理解していますが、(s, message)
とにかくこれの周りにあるのだろうかと思いました。プログラム全体でこの関数を何度も使用しますが、使用する変数の量が異なるたびに、関数に特定の制限を設定することはできません。
文字列を関数に渡す前に、文字列を連結/補間/フォーマットすることができます。
sendMessage(s, var1 + " message1 " + var2 + " message2")
sendMessage(s, "%s message1 %s message2" % (var1, var2))
またはprint()
、可変数の引数を好きにして受け入れ、2番目からn番目までをタプルにパックしてから、関数で必要に応じて処理することもできます。といった:
def sendMessage(s, *message):
messageTemp = "PRIVMSG #" + CHANNEL + " :" + " ".join(map(str, message))
s.send((messageTemp + "\r\n").encode())
次に、提供したサンプル呼び出しが機能します。ボーナスとして、他の方法はまだ機能します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加