5-2编程练习

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小猿 2022-08-25 09:47:05

同学,你好!1、报错是因为Bird类中没有name属性,同学可以继承父类Animal的init 方法实现定义name、age、sex 属性,如下图:
https://img1.sycdn.imooc.com//climg/6306d2e90966157d05540134.jpg
实例化对象使用如下代码:
https://img1.sycdn.imooc.com//climg/6306d3ab0929416007000148.jpg

2、format 格式化字符串时format前是点不是逗号,如下图:
https://img1.sycdn.imooc.com//climg/6306d33e09fdd21213210207.jpg
同学可参考完整代码如下:

class Animal(object):
    def __init__(self,name,age,sex):
        self.name=name
        self.age=age
        self.sex=sex
class Bird(Animal):
    def __init__(self,name,age,sex,kind):
        super().__init__(name,age,sex)
        self.kind=kind
    def run(self):
        # return  'my name is {},{} years old, i am {} is a {}',format(self.name,self.age,self.sex,self.kind)
        return 'my name is {},{} years old, i am {} is a {}'.format(self.name, self.age, self.sex, self.kind)
# Animal(name="xiaomu",age=18,sex='男')
b=Bird(name="xiaomu",age=18,sex='男',kind="人类")
result=b.run()
print(result)

祝学习愉快~

  • 提问者 loseos #1

    super().__init__(name,age,sex)这是什么意思?

    2022-08-25 17:14:45
  • 好帮手慕小猿 回复 提问者 loseos #2

    同学,你好!super().__init__(name,age,sex)是继承父类Animal的__init__()方法,Animal的__init__()方法有对name,age,sex 属性进行定义,如图:
    https://img1.sycdn.imooc.com//climg/63073f930948a7d605880167.jpg
    子类想继承父类的name,age,sex 属性,可以调用父类Animal的__init__()方法即使用super().__init__(参数)来调用。祝学习愉快~

    2022-08-25 17:31:22
  • 老师,子类继承父类属性必须全部继承吗,题目中bird类没有父类的sex属性,也必须继承吗
    下载视频          
    2022-09-07 15:03:24
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师