本节课的一些疑问
一、*args,**kwargs是不是固定名词?不管几个参数什么类型只要在括号里加这个*args,**kwargs就行了?
二、图上画圈的return是不是没有必要?
18
收起
正在回答
3回答
同学,你好。
1、视频中add()方法中,使用的是return将结果返回,因此在调用时需要定义变量rest接收结果。同学给出的截图中,在hello()函数中直接使用print()将结果输出了,因此不需要定义变量接收结果
2、*args代表不定长参数,"不定长"意味着你在定义函数的时候不知道调用者会传递几个参数进来,加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。**kwargs允许传递不定长的关键字参数。
def wrapper(func): def inner(age, *args, **kwargs): if age < 0: age = 0 func(age) print(args) # (50, 60) print(kwargs) # {'a': 2, 'b': 3} return inner @wrapper def getAge(age, *args, **kwargs): print("今年%s岁" % age) getAge(20, 50, 60, a=2, b=3) # 今年20岁
3、不能直接把age换成*args的,否则程序中age无法使用,*args是元组类型的数据,在取值时需要使用下标取值
def wrapper(func): def inner(*args): age = args[0] if age < 0: age = 0 func(age) print(args) # (20,) return inner @wrapper def getAge(*args): print("今年%s岁" % args) getAge(20) # 今年20岁
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星