以下程序的错误在哪里?class Person: def __init__(self,n="xxx"): self.name=n class Student(Person): def __init__(self,s="male"): self.sex=s def show(self): print(self.name,self.sex) s=Student("female") s.show()
时间: 2024-03-21 11:40:24 浏览: 67
python使用 __init__初始化操作简单示例
5星 · 资源好评率100%
这个程序的错误在于,子类 `Student` 的 `__init__` 方法中没有调用父类 `Person` 的 `__init__` 方法,导致在子类实例化时无法正确地初始化父类的属性。正确的写法为:
```
class Person:
def __init__(self, n="xxx"):
self.name = n
class Student(Person):
def __init__(self, s="male", n="xxx"):
super().__init__(n)
self.sex = s
def show(self):
print(self.name, self.sex)
s = Student("female")
s.show()
```
这样,当 `Student` 实例化时,会先调用父类 `Person` 的 `__init__` 方法,再执行子类 `Student` 的 `__init__` 方法,从而正确地初始化属性值。
阅读全文