[英]Can I pass just the keyword name of a keyword argument in a Python wrapper function?
我对这些问题进行了深入研究,但似乎无法解决这个问题。
基本上,我想将一个可选关键字传递给“wrapperfunc”,以便从它调用的“load_data”函数中获取相关数据。 我希望 wrapperfunc 的参数指定对数据执行的方法。
我确定这是以正确方式解开参数的情况?
import numpy as np
def load_data(remove_smallest = None, remove_largest = None):
data = np.arange(0,100,1)
if remove_smallest != None:
data = data[remove_smallest::]
elif remove_largest != None:
data = data[0:(100-remove_largest)]
else:
data = data
return print(data)
def wrapperfunc(**args):
val = [10, 20, 30]
for v in val:
load_data(args = v)
wrapperfunc(remove_smallest)
wrapperfunc(remove_largest)
**kwargs
只是str: object
字典,因此您可以让包装器采用一个键 name ,从中创建一个字典,并使用它来调用包装函数:
def wrapperfunc(key):
val = [10, 20, 30]
for v in val:
load_data(**{key: v})
wrapperfunc('remove_smallest')
wrapperfunc('remove_largest')
不,关键字参数是纯粹的语法,但如果名称与命名参数不对应,则名称和值会收集在dict
。
您可以做的最接近的是传递一个str
值,然后将一个解压缩的dict
传递给load_data
。
def wrapper(arg):
val = [10, 20, 30]
for v in val:
load_data(**{arg: v})
wrapper('remove_smallest')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.