如何修复discord.py中'TypeError: 'Member' object is not subscriptable'错误
问题原因
你在if amount>bal[0]处报错的核心原因是update_bank函数的返回值不符合预期:你在函数内部构造了存储钱包、银行余额的列表bal,但最终返回的是user用户对象而非bal变量。你之前代码能正常运行大概率是此前误改了该函数的返回值,原本的实现应该是返回余额列表。
修复方法
直接修改update_bank函数的返回逻辑即可,将函数最后一行:
return user
替换为:
return bal
可选优化点
- 调整金额校验顺序:目前你先判断
amount<50再判断amount<0,当用户输入负数时会先触发最低投注50的提示,逻辑不合理,建议先校验amount<0,再校验最低投注金额,最后校验余额是否充足。 - 增加非法输入捕获:如果用户输入非数字内容作为投注金额,
amount = int(amount)会直接抛出类型错误,可以加try-except块捕获该异常,提示用户输入合法的数字金额。
内容的提问来源于stack exchange,提问作者user14809494
相关产品推荐
相关产品推荐

