内容
在最近的一期 realpython 中,我阅读到了这样一段代码:
# Why Python Is Great: # Function argument unpacking def myfunc(x, y, z): print(x, y, z) tuple_vec = (1, , 1) dict_vec = {'x': 1, 'y': , 'z': 1} >>> myfunc(*tuple_vec) 1, , 1 >>> myfunc(**dict_vec) 1, , 1
之前因为:
- 这个东西不是很直观
- 这个可能造成参数混乱
而不是很在意这段代码。现在想来,真是很方便的一个东西:我们可以通过这个特性,轻松的拆解response.json
这个dict
,从而直接使用参数。
注意一点,如果一个函数的参数超过三个,说明你需要拆解这个函数,而不是被参数的数量搞得焦头烂额。
具体例子
这个方法可以方便很多事情,比如说,我可以这样来重新构建输出的变量,而不是一个个print
def add_parameters(params, **kwargs): """add kwargs to dict Args: params: the dict need to add kwargs: variable """ params.update(kwargs) params = {} add_parameters(params, x_train=x_train.shape, y_train=y_train.shape, x_test=x_test.shape, y_test=y_test.shape) pretty(params)