本节课的一些疑问

一、*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工程师的行业梗。
了解课程

这是视频截图,老师说要再用一个参数保存func(a,b)的计算结果。
这是其他答疑里我看老师发的图,这里没用一个多余的参数保存func('python')的值。
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星