有人可以解释为什么我要用Python获得此输出吗?

时间:2019-08-17 04:05:07

标签: python arguments function-call

enter image description here因此,我正在尝试调用杂货店购物功能,该功能接受问候,可迭代(emp_name)和字典(项目)作为参数。 我通过关键字传递参数。 但是,由于作为emp_name传递的参数被读取为项目,因此输出似乎有点奇怪! 谁能帮助我解读这种(看似奇怪的)行为?

2 个答案:

答案 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_nameitems作为命名参数,因此它们两者都包含在**items中。 *emp_name为空。

您应该阅读*args**kwargs