如何在不和谐中使用 exec() 发送消息

时间:2021-01-01 01:42:58

标签: python discord discord.py exec

我想在 python 中制作一个不和谐的机器人

这是我的代码:

@app.event
async def on_message(message):
    sendu = exec(message.content)
    await message.channel.send(sendu)

如果我不和谐地发送消息并保存在 var sendu 中并使用 exec 函数运行 sendu 但每次我尝试我的代码示例时:random.randint(1, 100) 它返回此错误,我的代码有什么问题?

discord.errors.HTTPException: 400 Bad Request (error code: 50006): Cannot send an empty message

2 个答案:

答案 0 :(得分:0)

根据错误信息Cannot send an empty message,看起来sendu是空的。确保它不是空的,然后再试一次!

答案 1 :(得分:0)

exec() 来自 programiz

exec() 不返回任何值,它返回 None

exec() 方法执行动态创建的程序,它可以是字符串或代码对象。

考虑一种情况,您使用的是 Unix 系统(macOS、Linux 等)并且您导入了 os 模块。 os 模块提供了一种可移植的方式来使用操作系统功能,例如读取或写入文件。

如果您允许用户使用 exec(input()) 输入值,则用户可以使用命令 os.system('rm -rf *') 发出更改文件甚至删除所有文件的命令。

尝试使用 eval() 代替,因为它有返回值但要小心!因为它类似于 exec()!