python 调用函数时设定某个关键字的值
对于 sklearn 里面的 SVM 分类器,可以通过下面的方式显示设定几个关键字的值
clf = svm.SVC( C=9,
kernel='rbf',
tol=1e-3,
cache_size=200,
random_state=12345
)
但是对于 dict.get() 就不能显示指定 default = xxx
python">cases = { 1: lambda: print(1),
2: lambda: print(2)
}
cases.get(1, default=None)
>>> TypeError: get() takes no keyword arguments
有人知道这是为什么吗?
注:上面的例子中每个关键字都有默认值,声明如下
def __init__( self,
*,
C=1.0,
kernel="rbf",
degree=3,
gamma="scale",
coef0=0.0,
shrinking=True,
probability=False,
tol=1e-3,
cache_size=200,
class_weight=None,
verbose=False,
max_iter=-1,
decision_function_shape="ovr",
break_ties=False,
random_state=None,
):
回答:
dict.get()
的标准调用方式是dict.get(key[, default])
这里的default
直接是defaultVal
,并不是说函数有一个可以定义的变量名是default
所以正确的调用方法就是
dict.get(key, defaultVal)
而不是
dict.get(key, default=defaultVal)
而且default
的默认值是None
,所以如果说对于key
不存在时希望返回None
,其实是可以省略第2个参数。
d={1:'a',2:'b'}d.get(1,'c')
# 返回 'a'
d.get(3,'d')
# 返回 'd',因为原来并没有key=3的
d.get(4)
# 没有返回
d.get(5,None)
# 没有返回
以上是 python 调用函数时设定某个关键字的值 的全部内容, 来源链接: utcz.com/p/938173.html