如何在Python中将参数名称作为参数传递给函数?

2 投票
1 回答
51 浏览
提问于 2025-04-14 18:17

我该如何把一个参数名作为参数传递给一个函数呢?

def edit_features_retry(editType,data):
    AGOLlayer.edit_features(editType=data)

edit_features_retry("adds", datalayer)

错误信息:

TypeError: edit_features() got an unexpected keyword argument 'editType'

如果我把它当作字符串这样做:

def edit_features_retry(editType,data):
    AGOLlayer.edit_features(editType=data)

edit_features_retry(adds, datalayer)

错误信息:

NameError: name 'adds' is not defined

1 个回答

3

你可以使用字典解包

这里有一个简单的例子:

def f(a = 1, b = 2):
  print(f"{a = }, {b = }")

f(b=5)  # output: "a = 1, b = 5"

kwargs = {"b": 5}
f(**kwargs)  # output: "a = 1, b = 5"

这个方法可以用在你的情况中:

def edit_features_retry(editType, data):
    AGOLlayer.edit_features(**{editType: data})

edit_features_retry("adds", datalayer)

撰写回答