You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中以整数作为关键字进行参数传递?

问题描述

编写了如下代码,当传入字符或字符串作为关键字参数名时运行正常:

def myfunc(**num):
    for i in num:
        print(i, num[i])

myfunc(a="One", b="Two")

但尝试传入整数作为关键字参数名(如执行myfunc(1="One", 2="Two"))时,出现语法错误:

SyntaxError: expression cannot contain assignment, perhaps you meant "=="?

请问该如何解决这个问题?

解决办法

这是因为Python语法规定,关键字参数的名称必须是合法的标识符,而纯数字(如1、2)不符合标识符命名规则——标识符必须以字母、下划线开头,不能直接用数字或特殊字符。

有两种可行的解决方式:

  • 改用符合规则的参数名,比如给数字添加前缀:
myfunc(n1="One", n2="Two")

函数内部遍历num时,键会是"n1"、"n2",可以正常输出。

  • 如果必须保留整数作为键,不要直接传关键字参数,先创建字典再通过解包传递:
num_dict = {1: "One", 2: "Two"}
myfunc(**num_dict)

这种方式绕开了关键字参数名的语法限制,函数内部能正常遍历整数键并输出对应值。

内容的提问来源于stack exchange,提问作者Giorgos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 13:25:51