python 调用函数时设定某个关键字的值

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

回到顶部