私はdiscord.pyを使用して不和と対話しています。Pythonでコルーチン関数をコルーチン関数から実行していますか?
def hi():
await client.send_message(channel, message)
は、hi()関数を使用しているときに "async"と記述しない限り、構文エラーが発生します。 私は本当にこれを理解していない、pls助けて!
私はdiscord.pyを使用して不和と対話しています。Pythonでコルーチン関数をコルーチン関数から実行していますか?
def hi():
await client.send_message(channel, message)
は、hi()関数を使用しているときに "async"と記述しない限り、構文エラーが発生します。 私は本当にこれを理解していない、pls助けて!
イベントループでコルーチンをスケジュールできます。彼らに電話することはできませんし、非コルーチン内からそれらを待っています。 greetLater
はコルーチンで、上記のコードで
import asyncio
async def greetLater(name, delay):
await asyncio.sleep(delay)
print("Hello {}!".format(name))
def main():
loop = asyncio.get_event_loop()
loop.run_until_complete(greetLater("masnun", 10))
if __name__ == '__main__':
main()
:
は、以下のコードを確認してみましょう。 main
機能から直接呼び出すことはできません。ここでは、イベントループを作成してコルーチンをスケジュールする必要があります。 asyncio
モジュールを使用して、イベントループの作成とコルーチンの実行を支援します。
さらに参照:
http://masnun.com/2015/11/13/python-generators-coroutines-native-coroutines-and-async-await.html
http://masnun.com/2015/11/20/python-asyncio-future-task-and-the-event-loop.html
(免責事項:トピックに関する私の個人的なブログの記事へのリンクは、あなたがより参照するためにGoogleができます)
ループを関数に渡しています大丈夫ですか?私が作っていることは、他の人によって使われるかもしれないし、あなたは私よりも経験があると思う。 – apoorlydrawnape
私はこのシナリオを完全には理解していませんでしたが、一般的にループを渡すのは問題ありません。 – masnun