还是关于父类的方法问题

还是关于父类的方法问题

def eat(cls):
   cls.eat = '我喜欢吃东西'
   print(cls.eat)


@eat
class Cat(object):
   pass


if __name__ == "__main__":
   c = Cat()
   c.eat()

老师,您好,为什么我这样就报错了???

http://img1.sycdn.imooc.com//climg/5e036afb095bf7e810890153.jpg

http://img1.sycdn.imooc.com//climg/5e036afb09fababa04640323.jpg


正在回答

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

1回答

同学,你好。eat()函数中为cls添加的eat方法为字符串数据,而且也没有使用return将cls返回,而是直接进行了输出。因此在创建实例调用eat方法时会报错。

参考代码:

http://img1.sycdn.imooc.com//climg/5e0428da095e97af04450312.jpg

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 为学习而奋斗 提问者 #1
    老师,按照您的方法进行使用,那我还有一个疑惑,为什么要使用lambda呢?那如果我不使用它,使用其他的方法可不可以进行输出里面打印的内容呢? 还有如果使用其他方法,要怎么样才能打印里面的内容呢?
    2019-12-26 11:46:03
  • 好帮手慕美 回复 提问者 为学习而奋斗 #2
    同学,你好。lambda是匿名函数,即表示cls.eat在赋值时为一个函数即类中的方法,因此在创建实例后是可以调用该方法的。cls.eat可以赋值为lambda匿名函数或def声明的函数,课程中都有讲到哦,同学可以继续听视频。祝学习愉快~~~~
    2019-12-26 12:00:25
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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