You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用discord.py的discord.ActionRow时为何报错?

解决discord.py中ActionRow初始化报错的问题

你的报错是因为discord.py 2.x版本对ActionRow的初始化方式做了调整,下面是具体的解决办法:

错误原因

  • 直接用discord.ActionRow(*buttons[0])传位置参数:ActionRow的构造函数仅接受self和关键字参数,你传入的3个按钮会被当成额外的位置参数,导致参数数量不匹配报错。
  • 使用components=buttons[0]:discord.py 2.x已经将组件列表的参数名从components改为children,旧参数名不再被支持。

解决方法

方法1:使用children关键字参数创建ActionRow

直接修改报错的代码片段为:

view.add_item(discord.ActionRow(children=buttons[0]))
view.add_item(discord.ActionRow(children=buttons[1]))
view.add_item(discord.ActionRow(children=buttons[2]))

方法2:逐个向ActionRow添加组件(更直观)

如果担心参数名混淆,可以先创建空的ActionRow,再逐个添加按钮:

# 处理第一行按钮
row1 = discord.ActionRow()
for btn in buttons[0]:
    row1.add_item(btn)
view.add_item(row1)

# 处理第二行按钮
row2 = discord.ActionRow()
for btn in buttons[1]:
    row2.add_item(btn)
view.add_item(row2)

# 处理第三行按钮
row3 = discord.ActionRow()
for btn in buttons[2]:
    row3.add_item(btn)
view.add_item(row3)

内容的提问来源于stack exchange,提问作者benz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 06:29:58