我有两个单独的 Python 文件。在第一个我有我的 Discord Bot。第二个有一些功能,当某些特定事件发生时,它告诉 Discord Bot 发送消息。至少这就是我正在努力做的。这是第一个文件:
import discord
import asyncio
client = discord.Client()
var1 = False
async def my_background_task():
await client.wait_until_ready()
channel = client.get_channel(CHANNEL ID)
global var1
while var1 == True:
await channel.send_message("Hey")
var1 = False
await asyncio.sleep(1)
client.loop.create_task(my_background_task())
client.run(TOKEN)
这是第二个:
import new_test1
new_test1.var1 = True
目前的情况是我没有收到来自 Discord Bot 的消息。虽然我希望每次设置 var1 = True 时都会得到一个“嘿”。
我认为问题是它永远不会执行
new_test1.var1 = True
答案 0 :(得分:0)
问题是,当第二个文件导入第一个文件时,机器人开始工作。这意味着 client.run(TOKEN)
之后的行永远不会被执行。
解决办法是不导入文件。相反,我们可以通过向/从文本文件写入和读取来使两者进行通信。
示例: File2.py 写“Go!”需要时到 data.txt。
File1.py 在无限循环中读取 data.txt,当它读取“Go!”时,它会打印“Hey!!”。 (在此之后清除 data.txt 很重要,否则它会发送垃圾邮件“Hey!!”,因为它仍然会显示“Go!”。)