请帮看下错在哪?

来源:2-7 编程练习

慕沐2042916

2020-01-02 22:09:06

请帮看下错在哪?

class People(object):

# 重写People类的构造方法,并将参数n、a赋值给实例属性name、age
   def __init__(self,n,a):
       self.name = n
       self.age = a

# 自定义实例方法speak(),实现格式化输出
   def speak(self):
       print('{0}说: 我{1}岁'.format(self.name,self.age))
class Speaker(object):


# 重写Speaker类的构造方法,并将参数n、c、t赋值给实例属性name、career、topic
   def __init__(self,n,c,t):
       self.name = n
       self.career = c
       self.topic = t
# 自定义实例方法speak(),实现格式化输出
   def speak(self):
       print('我叫{0},我是一个{1},我演讲的主题是 {2}'.format(self.name,self.career,self.topic))

class Student( People,Speaker):
   def __init__(self, name, age, career, topic):
       People.__init__(self, n, a)
       Speaker.__init__(self, n, c, t)
   pass


s = Student('Jonh', '演说家', 'Python')

# s对象调用父类的speak( )方法
s.speak()
# 格式化打印Student是否为Speaker的子类
print('Student是否为Speaker的子类:{}'.format(issubclass(Student,Speaker)))
# 格式化打印Student是否为People的子类
print('Student是否为Speaker的子类:{}'.format(issubclass(Student,People)))

写回答

1回答

好帮手乔木

2020-01-03

同学你好:

1、

同学继承父类的构造方法时,传参出现错误。应该是Student类构造方法的每一个形参名称。

2、

同学需要定义一个speak方法,在该方法中继承Speaker类的speak方法。

3、

同学创建初始化对象时,要根据Student类形参列表的个数进行传参。

http://img.mukewang.com/climg/5e0ed99a0976555904630375.jpg

http://img.mukewang.com/climg/5e0edab00960b57f05950145.jpg

如果我解决了同学的问题,请采纳!学习愉快^_^。

1

0 学习 · 8160 问题

查看课程