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

2024-10-04 11:21:50 发布

您现在位置:Python中文网/ 问答频道 /正文

enter image description here因此,我尝试调用函数screery\u shopping—它接受问候语、iterable(emp\u名称)和dictionary(items)作为参数。 我用关键字传递参数。 然而,输出似乎有点奇怪,因为作为emp\u name传递的参数被读取为items! 有人能帮我破译这种(看似奇怪的)行为吗


Tags: name名称参数dictionaryitems关键字iterable调用函数
2条回答

在python中使用*args这样的参数定义函数时,它会将所有未命名的非关键字变量收集到一个名为args的列表中。在python中使用**kwargs这样的参数定义函数时,它会将所有关键字变量收集到名为kwargs的字典中,其中键是变量名,值是值。所以您所做的就是将17.08.2019放入greeting参数,不将任何内容放入emp_names,并将关键字参数放入items。第一个for循环将不起任何作用,因为emp_names是空的。在第二个for循环中,将字典items打印两次

如果你还不明白的话,用python搜索*args**kwargs

您将emp_nameitems作为命名参数传递,因此它们包含在**items*emp_name为空

你应该仔细阅读*args**kwargs

相关问题 更多 >