关于魔法参数的问题
来源:6-8 实现登录注册功能
kanokano
2020-03-23 11:30:54
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、在重写原本的方法时不需要修改之前的一部分参数,若需要使用之前方法中的参数时,在子类继承父类时,直接在方法中传入之前的参数就可以,确定传递哪些参数时可以不用魔法参数
例:

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