因此,我正在尝试调用杂货店购物功能,该功能接受问候,可迭代(emp_name)和字典(项目)作为参数。 我通过关键字传递参数。 但是,由于作为emp_name传递的参数被读取为项目,因此输出似乎有点奇怪! 谁能帮助我解读这种(看似奇怪的)行为?
答案 0 :(得分:1)
在python中使用诸如*args
之类的参数定义函数时,它将所有未命名的非关键字变量收集到名为args
的列表中。当您在python中使用诸如**kwargs
之类的参数定义函数时,它将所有关键字关键字的变量收集到名为kwargs
的字典中,其中关键字为变量名,值为值。因此,您要做的是将17.08.2019
放入greeting
参数,什么也不放入emp_names
,然后将关键字参数放入items
。您的第一个for循环不会执行任何操作,因为emp_names
为空。在第二个for循环中,两次将字典items
打印两次。
如果您仍然感到困惑,请使用python中的Google *args
和**kwargs
。
答案 1 :(得分:1)
您正在传递emp_name
和items
作为命名参数,因此它们两者都包含在**items
中。 *emp_name
为空。
您应该阅读*args
和**kwargs
。