如何在Python中将参数名称作为参数传递给函数?
我该如何把一个参数名作为参数传递给一个函数呢?
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)