为什么要super().__init__(),这行代码不加会有什么问题

为什么要super().__init__(),这行代码不加会有什么问题


在这里输入代码,可通过选择【代码语言】突出显示

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

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

1回答
好帮手慕小轩 2020-11-27 19:52:28

同学,你好!super().__init__(*args, **kwargs)用于调用父类中的init初始化方法,括号内为参数。如下面代码示例中,调用了super().__init__()方法,执行结果输出"我叫小慕"
http://img1.sycdn.imooc.com//climg/5fc0e6ba09789db208190590.jpg

加油,祝学习愉快~~~


  • 提问者 慕粉1504263447 #1

    本节视频里继承init有什么意义呢?我试了一下把super那行代码注释掉,程序也正常运行,结果也是正确的。

    class ChangeThread(threading.Thread):
    def __init__(self,max_count=100,*args,**kwargs):
    super().__init__(*args,**kwargs)
           self.max_count=max_count


    2020-11-27 23:11:55
  • 好帮手慕小轩 回复 提问者 慕粉1504263447 #2

    同学,你好!threading.Thread中的init方法用来确保多线程执行过程中参数的正确传递,子类的init方法中只有一个参数时,super().__init__()不加也是可以的,但当传递多个参数时,不加super().__init__()程序运行将会报错,Python多线程编程中,这是一个需要注意的地方,为同学的认真细心点赞,棒棒哒

    http://img1.sycdn.imooc.com//climg/5fc1db3509b13b4710990662.jpg
    祝学习愉快~~~

    2020-11-28 13:13:08
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
3.从网页搭建入门Python Web
  • 参与学习           人
  • 提交作业       218    份
  • 解答问题       3562    个

本阶段带你用Python开发一个网站,学习主流框架Django+Flask是Python Web开发的第一步,在基础知识上实现积分商城的项目开发,体验真实的项目开发流程,提高解决编程问题和效率的能力。

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

在线咨询

领取优惠

免费试听

领取大纲

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