有人能解释一下为什么我要用Python获得这个输出吗?

有人能解释一下为什么我要用Python获得这个输出吗?,python,arguments,function-call,Python,Arguments,Function Call,因此,我尝试调用函数grovery_shopping,它接受作为参数的问候语、一个iterable(emp_name)和一个dictionary(items)。 我通过关键字传递参数。 然而,输出似乎有点奇怪,因为作为emp_name传递的参数被读取为items! 有人能帮我解释一下这种(看似奇怪的)行为吗 在python中定义一个带有参数(如*args)的函数时,它会将所有未命名的非关键字变量收集到名为args的列表中。在python中定义一个带有类似**kwargs的参数的函数时,它会将所有

因此,我尝试调用函数grovery_shopping,它接受作为参数的问候语、一个iterable(emp_name)和一个dictionary(items)。 我通过关键字传递参数。 然而,输出似乎有点奇怪,因为作为emp_name传递的参数被读取为items!
有人能帮我解释一下这种(看似奇怪的)行为吗

在python中定义一个带有参数(如
*args
)的函数时,它会将所有未命名的非关键字变量收集到名为
args
的列表中。在python中定义一个带有类似
**kwargs
的参数的函数时,它会将所有关键字变量收集到名为
kwargs
的字典中,其中键是变量名,值是值。因此,您所做的是将
17.08.2019
放入
greeting
参数中,在
emp_names
中不放入任何内容,并将关键字参数放入
项中。您的第一个for循环将不起任何作用,因为
emp\u names
为空。在第二个for循环中,将字典
项打印两次


如果您仍然感到困惑,请用python搜索
*args
**kwargs

您将
emp_name
作为命名的args,因此它们都包含在
**items
中<代码>*emp_name
为空


您应该阅读
*args
**kwargs

请提供文本代码和输出,而不是屏幕截图。在
emp\u名称
参数的声明中,您为什么有
*
***