Python不能在函数定义之外使用**

时间:2019-04-19 16:51:14

标签: python kwargs

免责声明:我是Python的新手。

如果您阅读this article,它将列出**能够解开字典。我正在尝试这个。

  1. my_dict = {"key1": 1, "key2": {"inner_key": 3} }
  2. unpacked_dict = **my_dict

返回:SyntaxError: invalid syntax

我想念什么?我知道**主要与**kwargs一起使用,我的问题是**只能在函数定义中使用吗?

1 个答案:

答案 0 :(得分:3)

您可以使用它来将其解压缩到其他词典中。它以我认为您尝试执行的方式行不通,即从值中获取内部字典并使它们全部属于同一级别。在您引用的文章中:

  

例如,我们可以在向字典添加新值的同时复制字典:

>>> date_info = {'year': '2020', 'month': '01', 'day': '7'}
>>> event_info = {**date_info, 'group': "Python Meetup"}
>>> event_info
{'year': '2020', 'month': '01', 'day': '7', 'group': 'Python Meetup'}
     

或在覆盖特定值时复制/合并字典:

>>> event_info = {'year': '2020', 'month': '01', 'day': '7', 'group': 'Python Meetup'}
>>> new_info = {**event_info, 'day': "14"}
>>> new_info
{'year': '2020', 'month': '01', 'day': '14', 'group': 'Python Meetup'}

这是从Python 3.5+开始添加的,更多信息在PEP 448中。