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

从C9.io迁移到Codeanywhere后Python脚本super()调用报错

解决super()调用参数错误的问题

嘿,这个问题我之前也碰到过!核心原因是Python版本差异:你在C9.io用的应该是Python 3,但Codeanywhere默认可能跑的是Python 2,两者对super()的语法要求不一样,这就导致了报错。

问题根源

Python 3里super().__init__()是合法的——解释器会自动帮你推断当前类和实例;但在Python 2中,super()必须显式传入两个参数:当前的类名,还有self。你之前尝试只加self的方式不对,所以报错没解决。

具体修复方法

找到你player.py里BerserkerCharacter类的__init__方法(就是报错的第93行),把super()的调用改成下面这样:

修改前(Python 3专属写法)

def __init__(self, first_name, last_name):
    super().__init__()
    # 你的其他初始化代码

修改后(兼容Python 2和3)

def __init__(self, first_name, last_name):
    super(BerserkerCharacter, self).__init__()
    # 你的其他初始化代码

这样改完之后,不管是Python 2还是3环境,都能正常调用父类的构造方法了。

顺带解决输出重复的问题

你提到Codeanywhere里输出重复了Strength: 15,这个大概率也是Python版本的小差异导致的(比如打印换行的处理),先把super()的问题解决,这个重复问题应该会跟着消失。如果还存在,再检查下test.py里的调用逻辑,确保没有重复调用show_player_stats的情况。

迁移小提示

从C9.io转去Codeanywhere,记得先确认默认Python版本:

  • 在终端敲python --version,如果显示2.x,要么用python3 test.py来跑脚本,要么修改代码兼容Python 2;
  • 也可以在Codeanywhere的项目设置里直接把默认Python版本改成3.x,一劳永逸。

内容的提问来源于stack exchange,提问作者The Gaming Hideout

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 10:07:02