夏瑾 发表于 2025-4-17 16:00:25

函数第5章学习出现

class Animal:
    def _init_(self,name, age):
      self.name=name
      self.age=age

    def say(self):
         print(f"我叫{self.name},今年{self.name}岁。")
         
class pig(Animal):
    def special(self):
      print("我的技能是拱大白菜")

p=pig("大肠",5)
p.say()
p.special()

SyntaxError: unindent does not match any outer indentation level

FishC 发表于 2025-4-17 16:01:12

SyntaxError: unident does not match any outer indentation level

这个错误主要由三个问题导致:


[*]构造函数名称错误:正确写法是双下划线 __init__
[*]中文标点问题:实例化时用了中文逗号 ”,
[*]字符串参数错误:say() 方法中重复使用了 self.name


修正后的代码:


class Animal:
    def __init__(self, name, age):# 注意这里是双下划线
      self.name = name
      self.age = age

    def say(self):
      print(f"我叫{self.name}, 今年{self.age}岁。")# 第二个参数改为age

class Pig(Animal):# 建议类名首字母大写
    def special(self):
      print("我的技能是拱大白菜")

p = Pig("大肠", 5)# 使用英文逗号
p.say()
p.special()


输出结果:

我叫大肠, 今年5岁。
我的技能是拱大白菜


注意:Python对缩进非常敏感,建议使用4个空格进行缩进(不要混合使用空格和Tab键)

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

xiaoniugogogo 发表于 2025-4-17 16:26:35

本帖最后由 xiaoniugogogo 于 2025-4-17 16:30 编辑

def __init__(self,name, age):
这里用双下划线就行了
页: [1]
查看完整版本: 函数第5章学习出现