Python子类调用父类构造函数报TypeError错误的解决方法
问题排查
你在子类中调用父类构造函数的写法 super().__init__(xval, yval) 是完全正确的,报错并非来自这个逻辑,而是以下两个错误导致的:
- 第一个错误是Enum枚举类的访问方式错误
你不需要实例化direction枚举类即可直接访问成员,direction().RIGHT的写法多了一对括号,触发了枚举实例化要求传入value参数的规则,才抛出对应的TypeError。 - 第二个错误是列表初始化的语法错误
你定义baddie_list时第一个元素后错误多写了一个闭合中括号,导致语法结构异常。
修正方案
- 修改
baddie子类的初始化代码:
class baddie(character): def __init__(self,xval,yval): super().__init__(xval, yval) self.currentDirection = direction.RIGHT # 移除direction后的括号
- 修改列表初始化代码:
baddie_list = [baddie(1,1), baddie(3,1), baddie(5,1), baddie(7,1), baddie(9,1), baddie(11,1)]
内容的提问来源于stack exchange,提问作者David Buddrige
相关产品推荐
相关产品推荐

