__init__参数问题

__init__参数问题

# 具体遇到的问题
Plane类里的构造函数 def __init__(self, screen, speed = None)中,self._img_list ;self._destory_img_list ;self.down_sound ;self.load_src()为什么不用将参数传入__init__()中,类似于 def __init__(self,  screen, _img_list,  _destory_img_list,  down_sound,  load_src,  speed = None)这样?


# 报错信息的截图

# 相关课程内容截图
http://img1.sycdn.imooc.com//climg/5f8a946009bbfba112410318.jpg# 尝试过的解决思路和结果

# 粘贴全部相关代码,切记添加代码注释(请勿截图)

    def __init__(self, screen, speed = None):

        super().__init__()

        #加载静态资源

        self.screen = screen

        self._img_list = []

        self._destory_img_list = []

        self.down_sound = None

        self.load_src()

        #飞行的速度

        self.speed = speed or 10


正在回答

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

1回答

同学,你好,

Plane类是OurPlane的父类,OurPlane类实例化的时候,只传入了screen和speed两个值http://img1.sycdn.imooc.com//climg/5f8aaf9b0961ae8307190104.jpg

类实例化时,_img_list 、_destory_img_list、down_sound和load_src()不需要传值,因此不需要写在构造函数的参数列表中

加油,祝学习愉快~~~

  • weixin_慕妹5398817 提问者 #1
    没太理解_img_list 、_destory_img_list、down_sound和load_src()不需要传值的意思,是因为空列表[]就等于不需要传值?不传值的话也能保证构造函数运行吗?是不是XX = [],只要是空集合就可以不用往_init_()里面传参了?
    2020-10-17 18:07:51
  • 同学你好,_img_list的值是固定的,就是空列表[],在_init_()内部就进行赋值了,没必要通过参数再传进来,当类实例化的时候,无论实例化多少次,_img_list的值都是[],构造函数是可以正常运行的 祝学习愉快~~~
    2020-10-17 18:21:51
  • 谢谢老师,我还有个疑问,self.load()没有在_init_()内部赋值是因为什么
    2020-10-17 18:36:39
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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