我想附加'status'索引的dict值,'update_fields'或者['status']作为一个值添加到由'update_fields'如果该键不存在而索引的kwargs .
kwargs.setdefault('update_fields', kwargs.get('update_fields', []).append('status'))
Run Code Online (Sandbox Code Playgroud)
它是这个或大约3行代码,当然python可以比这更好!
get并且setdefault基本上是两种做同样事情的方法; 把它们放在一起就是重复自己.get和之间的唯一区别setdefault是,如果默认值不存在,则setdefault 设置值.在那之后,它们在语义上是相同的.
这部分:
kwargs.get('update_fields', [])
Run Code Online (Sandbox Code Playgroud)
..多余的. 如果字典没有该键的值,则setdefault设置默认值(并返回它get),否则它只查找与键关联的值.
所以你需要的是:
kwargs.setdefault('update_fields', []).append('status')
Run Code Online (Sandbox Code Playgroud)
你不需要这个kwargs.get()位,setdefault只设置值,如果它还没有,你可以写:
kwargs.setdefault('update_fields', []).append('status')
Run Code Online (Sandbox Code Playgroud)