关于魔法参数的问题

关于魔法参数的问题

1、魔法参数是不是就是用来代替其他形参的,如果在重写原本的方法时不需要修改之前的一部分参数,就直接用*args **kwargs来代替这一部分不需要修改的参数,我的理解是对的吗

2、魔法参数使用的时候必须*args **kwargs成对使用吗

3、魔法参数一般的应用场景有哪些

求老师解答,谢谢

正在回答

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

1回答

同学,你好。

1、*args代表不定长参数,“不定长”意味着你在定义函数的时候不知道调用者会传递几个参数进来,加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。

**kwargs允许传递不定长的关键字参数。若需要在函数中定义不定长个命名参数,需要使用**kwargs。

def func(name, *args, **kwargs):
    # 注意:*的不定长参数被当做元组处理,**的不定长参数被当做字典处理
    print(name)    # Tom
    print(args)    # (1, 2, 3)
    print(kwargs)  # {'a': 4, 'b': 5, 'c': 6}
func("Tom",1,2,3, a=4, b=5, c=6)

2、在重写原本的方法时不需要修改之前的一部分参数,若需要使用之前方法中的参数时,在子类继承父类时,直接在方法中传入之前的参数就可以,确定传递哪些参数时可以不用魔法参数

例:

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

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

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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