有人可以解释为什么我在 Python 中得到这个输出吗?
Can someone explain why do I get this output in Python?
因此,我正在尝试调用函数 grocery_shopping-,它接受作为参数问候语、可迭代对象 (emp_name) 和字典(项目)。
我通过关键字传递参数。
然而,输出看起来有点奇怪,因为作为 emp_name 传递的参数被读取为项目!
谁能帮我破译这种(看似奇怪的)行为?
当您在 python 中使用 *args
等参数定义函数时,它会将所有未命名的非关键字变量收集到名为 args
的列表中。当你在 python 中用 **kwargs
这样的参数定义一个函数时,它会将你所有的关键字变量收集到一个名为 kwargs
的字典中,其中键是变量名和值是价值。因此,您所做的是将 17.08.2019
放入 greeting
参数,将任何内容放入 emp_names
,并将关键字参数放入 items
。你的第一个 for 循环什么都不做,因为 emp_names
是空的。在你的第二个 for 循环中,你打印字典 items
两次。
Google *args
和 python 中的 **kwargs
如果您仍然感到困惑。
您将 emp_name
和 items
作为命名参数传递,因此它们 都包含在 **items
中。 *emp_name
为空。
您应该阅读 *args
和 **kwargs
。
当您在 python 中使用 *args
等参数定义函数时,它会将所有未命名的非关键字变量收集到名为 args
的列表中。当你在 python 中用 **kwargs
这样的参数定义一个函数时,它会将你所有的关键字变量收集到一个名为 kwargs
的字典中,其中键是变量名和值是价值。因此,您所做的是将 17.08.2019
放入 greeting
参数,将任何内容放入 emp_names
,并将关键字参数放入 items
。你的第一个 for 循环什么都不做,因为 emp_names
是空的。在你的第二个 for 循环中,你打印字典 items
两次。
Google *args
和 python 中的 **kwargs
如果您仍然感到困惑。
您将 emp_name
和 items
作为命名参数传递,因此它们 都包含在 **items
中。 *emp_name
为空。
您应该阅读 *args
和 **kwargs
。