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

Python类中出现Unresolved reference错误,请求排查解决

你的Python Robot类错误分析与修复方案

我来帮你把这些错误一一理清并修复,你的代码里主要有几个关键问题,咱们逐个拆解:

核心错误点分析

  • __init__方法参数定义错误:Python中类的实例方法(包括构造方法__init__)的第一个参数必须是self,用来指代当前创建的实例对象。你把第一个参数写成了givenName,这会导致后续self.name和self.color找不到正确的实例引用,直接触发错误。
  • 注释符号使用错误:Python的单行注释是#,而你用了//(这是Python的除法运算符),所以//error会被当成代码执行,引发语法错误。
  • 实例化时参数缺失:你定义的__init__需要givenName和givenColor两个参数,但创建r1、r2时直接调用robot(),没有传参,会触发参数数量不匹配的报错。
  • 代码语句分隔错误:r1=robot(); r1.name='tom' r1.color='red'里,r1.name='tom'和r1.color='red'之间没有分号或换行,Python会把它们当成一行代码解析,导致语法错误。

修复后的完整代码

class Robot:
    # 修正__init__参数,用self作为第一个参数
    def __init__(self, givenName, givenColor):
        self.name = givenName  # 正确给实例属性赋值
        self.color = givenColor  # 正确给实例属性赋值
    
    def intro(self):
        # 用f-string让字符串拼接更清晰,同时输出颜色信息
        print(f"My name is {self.name}, my color is {self.color}")

# 实例化时直接传入所需的名字和颜色参数
r1 = Robot('tom', 'red')
# 这里把r2的名字改成jerry避免和颜色重名,你也可以根据需求调整
r2 = Robot('jerry', 'blue')

r1.intro()
r2.intro()

修正细节说明

  1. 遵循Python命名规范,把类名改成Robot(大驼峰命名法,更符合行业惯例);
  2. 调整__init__的参数顺序,确保第一个参数是self,这样才能正确绑定实例属性;
  3. 把错误的注释符号//换成标准的#;
  4. 实例化对象时直接传入参数,无需后续手动赋值属性(如果需要修改属性,后续依然可以通过r1.name = 'new_name'的方式调整);
  5. 用f-string重构了intro方法的输出语句,比字符串拼接更简洁易读;
  6. 修复了语句分隔问题,让每行代码逻辑更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:41:35