如何从** args返回函数的参数

时间:2018-02-11 07:15:47

标签: python parameters arguments

说我有一个功能:

df_tidied %>%
  group_by(c1) %>%
  tally(opening_hours)
#> # A tibble: 5 x 2
#>   c1    n     
#>   <chr> <time>
#> 1 gym1  27.5  
#> 2 gym2  9     
#> 3 gym3  14    
#> 4 gym4  27.5  
#> 5 gym5  18.5 

如何从函数未处理的** args中找到其他参数?例如,如果我不小心通过了大熊猫&#39;或者&#39; pand&#39; ,我怎么找到并打印pandas / pand?

1 个答案:

答案 0 :(得分:0)

你需要一组你的函数所期望的参数(比方说,my_args)。然后你可以从传递的参数集中减去它。差集包含意外的参数:

def foobar(**args):
    my_args = set(['foo','bar','panda']) # Expected arguments
    unknown = set(args) - my_args
    print(unknown) # Or raise an exception

foobar(foo=1,bar=2,foobar=3,pandas="hello!")
# {'pandas','foobar'}