为什么我的Python函数正常运行却没有输出任何内容?
问题原因分析
*args是用于接收额外位置参数的元组,你调用函数时传入的全是key=value形式的关键字参数,没有传递任何位置参数,所以args是空元组,'fruit' in args的判断结果永远为False,if分支不会触发,自然没有打印输出。- 即使条件判断能触发,你用
args['fruit']的写法本身也存在语法错误,元组只能用整数下标访问元素,不能用字符串作为键取值。 - 你需要获取的
fruit参数属于关键字参数,是保存在**kwargs接收的字典里的,需要从kwargs中读取。
修正后可正常运行的代码
def func(*args,**kwargs): if 'fruit' in kwargs and 'food' in kwargs: print('I would like to eat {} {}'.format(kwargs['fruit'], kwargs['food'])) func(fruit='apple',fruit1='banana',food='biryani',dinner='meat')
运行后输出内容为:I would like to eat apple biryani
内容的提问来源于stack exchange,提问作者Hassaan Haider
相关产品推荐
相关产品推荐

