プログラミング

【Python】新たな壁「Coroutine」と遭遇しました【プログラミング】

投稿日:2020年1月25日 更新日:

先日、Discord BOTについての記事を書きました。

続きを書きたいと思います。


やろうとしている事

Discord BOTが割とお手軽に作れることが分かりました。

前々からやりたかった「Twitchチャンネルの監視機能」を、Discord BOTで再現してみようと思います。

ぶつかった壁とは?

実際にDiscord BOTのサンプルコードをコピペして、色々触ってみました。

PythonのDiscordパッケージをインポートして使っているのですが、いくつかのメソッド、例えば「特定のテキストチャンネルでメッセージを送る」機能が呼び出せませんでした。

Discord APIリファレンスをあさっていたら、どうやらメッセージ送信機能は「Coroutine」であるとのこと。ここで疑問が・・・

  • 「Coroutine」とは何なのか?
  • メソッドが「Coroutine」である と書かれていたが、どういう事なのか?

「Coroutine」をググってみた

どうやら、実施タイミングの同期を取るための仕組みのようです。

実はまだよく分かっていません。

実際に動かしてみて理解してから、また記事で書こうと思います。今の時点では以下のような認識です。

  • 「Coroutine」とは、命令とか処理を実行するタイミングの同期を取るための仕組みらしい
  • 複数の命令を、実行タイミング(例えば1秒後、2秒後など)と共に登録できる
  • async,awaitという言葉を添えて呼び出さないといけないらしい

先ほどの 「メッセージ送信機能 」は、Coroutine内の関数呼び出し構文(?)である「await」と共に呼び出したら使えました。

仕組みはぜんぜん分かってないのですが、とりあえず「Coroutine」の学習が必須となりそうなことは分かりました。


「Coroutine」は、Pythonに限らず多くのプログラム言語で共通する考え方みたいです。良い勉強になりそうです。

理解度が上がったら、また記事を書きたいと思います。

それでは。

-プログラミング

執筆者:

ブログ内検索

プロフィール

twitter
Neeetb twitterプロフィール

11年間自動車業界でエンジニアとして働いていた。
現在は技術者としての経験を活かし、DiscordサーバーにおけるBOT運用方法を発信している。
PCパーツに関しても得意としており、ゲーミングデバイスのレビューやゲーム配信に関する記事も投稿している。