如何向接受**kwargs的Python函数传递含点号的关键字参数?
如何给接受**kwargs的函数传递含点号的键值对
当你定义了如下接受**kwargs的函数:
def f(**kwargs): print(kwargs)
如果尝试直接传递键名带点号的参数,比如f(a.b=1),会触发语法错误:
In [46]: f(a.b=1) Cell In[46], line 1 f(a.b=1) ^ SyntaxError: expression cannot contain assignment, perhaps you meant "=="?
这是因为Python要求关键字参数的名称必须是合法标识符,不能包含.这类特殊字符。解决办法很直接:
- 先构造包含目标键值对的字典,再通过
**解包传递给函数:
# 构造带特殊键名的字典 params = {"a.b": 1} # 解包字典传递参数 f(**params)
运行后会输出{'a.b': 1},完全满足需求。
内容的提问来源于stack exchange,提问作者xebtl
相关产品推荐
相关产品推荐

