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

Python新手向列表添加类实例时append报不接受关键字参数错误如何解决

错误原因

Python的list.append()方法仅支持接收1个位置参数(即你要存入列表的元素),不支持传入关键字参数。你写的Starters.append(Botamon = Digi("Botamon",0,1,1,1,1,[""]))属于给append方法传递了名为Botamon的关键字参数,不符合方法的参数要求,因此抛出TypeError。

你原本想实现「同时给实例绑定变量名+存入列表」的思路没问题,但语法使用错误,不能将变量赋值操作写在append的参数括号内。

优化方案

方案1:无需单独使用变量名,仅需把实例存入列表

直接删除append参数中等号左侧的变量名即可,修改后代码可以正常运行:

Starters = []
Starters.append(Digi("Botamon",0,1,1,1,1,[""]))
Starters.append(Digi("Poyomon",0,1,1,1,1,[""]))
Starters.append(Digi("Punimon",0,1,1,1,1,[""]))
Starters.append(Digi("Yuramon",0,1,1,1,1,[""]))

Digilist = []
Digilist.append(Digi("Koromon",1,3,3,3,3,["Botamon"]))
Digilist.append(Digi("Tokomon",1,3,3,3,3,["Poyomon"]))
Digilist.append(Digi("Tsunomon",1,3,3,3,3,["Punimon"]))
Digilist.append(Digi("Tanemon",1,3,3,3,3,["Yuramon"]))

该方案完全不影响后续random.choice(Starters)取实例的逻辑。

方案2:需要保留单独的变量名供后续调用

将赋值和添加到列表的操作拆分即可:

# 初始化实例+绑定变量
Botamon = Digi("Botamon",0,1,1,1,1,[""])
Poyomon = Digi("Poyomon",0,1,1,1,1,[""])
Punimon = Digi("Punimon",0,1,1,1,1,[""])
Yuramon = Digi("Yuramon",0,1,1,1,1,[""])
# 批量添加到列表
Starters = [Botamon, Poyomon, Punimon, Yuramon]

方案3:批量生成减少重复代码(推荐)

你的实例参数重复度很高,完全可以用列表推导式批量生成,不用逐个写append,同时补全你漏写的random导入、修改歧义变量名:

import random # 原代码漏了导入random模块,不加这行后续随机选择会报错

class Digi:
    def __init__(self,mon,age,offense,defense,speed,brains,evo):
        self.mon = mon
        self.age = age
        self.offense = offense
        self.defense = defense
        self.speed = speed
        self.brains = brains
        self.evo = evo

# 批量生成初始数码兽列表
starter_names = ["Botamon", "Poyomon", "Punimon", "Yuramon"]
Starters = [Digi(name, 0, 1, 1, 1, 1, [""]) for name in starter_names]

# 批量生成进化后数码兽列表
digi_config = [
    ("Koromon", ["Botamon"]),
    ("Tokomon", ["Poyomon"]),
    ("Tsunomon", ["Punimon"]),
    ("Tanemon", ["Yuramon"]),
]
Digilist = [Digi(name, 1, 3, 3, 3, 3, evo) for name, evo in digi_config]

# 随机选择初始数码兽,注意不要用self作为普通变量名,self是类方法里约定指代实例的保留字
starter = random.choice(Starters)
name = starter.mon

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 15:39:02