python - Python函数导入后不起作用
问题描述
我有一个不和谐的机器人,我正在尝试创建一个不同的文件,其中我只有可以处理不同类型错误的功能..
文件errorHandling.py中的示例
async def on_error(ctx, error):
if isinstance(error, commands.MissingRequiredArgument):
await ctx.send("heh")
return
在我的 main.py 中,我只是
from errorHandler import *
正确的?
接着
@Client.event
async def onerr():
await on_error()
机器人正在运行,但是当我键入一个没有所需参数的命令时,除了它给我带来了那个令人讨厌的错误之外,什么也没有发生。我做错了什么,或者我忘记了什么?
解决方案
您必须使用on_command_error
由于命令而引发的错误。在 API References 中,它说:
不和谐。on_command_error (ctx, error)
一个错误处理程序,当通过用户输入错误、检查失败或您自己的代码中的错误在命令中引发错误时调用该错误处理程序。
此外,没有名为的事件onerr
,您只能覆盖现有的事件。
@client.event
async def on_command_error(ctx, error):
if isinstance(error, commands.MissingRequiredArgument):
await ctx.send("heh")
return
这就是你在main.py
文件中要做的所有事情。
参考
推荐阅读
- laravel - 模型 App/Models/Country delete_all 没有查询结果
- xcode - 是否可以使用 Xcode lldb 控制台检查内存中是否有任何类的实例?
- python-3.x - 根据给定的阈值修改数值数组或图像
- php - 如何返回第一个匹配的键值?
- javascript - document.getElementById() 在函数闭包中不起作用
- android - Angular 数据库抽象层的最佳方法是什么?
- python - keras适合时间/步长差异
- html - 有没有办法让我强制使用 HTML
- 为了制作SPA,要固定大小?
- spring-boot - 在 Spring Boot 中排除某些 URL 的自定义过滤器
- sql - PDO 查询, WHERE x like ? 没有返回任何结果