Discord.py脚本运行报on_ready()参数错误 免费设置直播状态问题
Discord直播状态设置脚本报错修复方案
错误原因
报错on_ready() takes at 0 positional arguments but 1 was given的触发原因是类成员方法on_ready缺少必填的实例参数,Python调用类的非静态成员方法时,会自动将实例本身作为第一个参数传入,你没有定义对应接收参数就会出现参数数量不匹配的问题,同时原代码还存在方法缩进错误、实例调用逻辑错误的问题。
修复要点
- 给
on_ready方法添加第一个参数self用于接收当前类实例 - 修正
on_ready方法的缩进,归属到MyClient类下 - 方法内调用实例方法、属性时,用
self代替全局client变量,避免引用异常
修复后完整代码
import discord token = input("User Token For The Streaming: ") stream = input("Streaming URL: ") game = input("Name of game playing: ") class MyClient(discord.Client): async def on_ready(self): await self.change_presence(activity=discord.Streaming(name=game, url=stream)) print('Connected to user: {}'.format(self.user.name)) print('User Id: {}'.format(self.user.id)) client = MyClient() client.run(token, bot=False)
注意:使用用户Token操作Discord账号属于违反Discord官方服务条款的行为,可能导致账号被永久封禁,请谨慎操作。
内容的提问来源于stack exchange,提问作者warden
相关产品推荐
相关产品推荐

