其他分享
首页 > 其他分享> > django:使用namedtuple而不是dict来** kwargs?

django:使用namedtuple而不是dict来** kwargs?

作者:互联网

为什么会成功

qs = Model.objects.filter(pk=1)
kwargs = {'name': 'me',
           'age_desc': 'getting older'
}
qs.update(**kwargs)

但是不是吗?

qs = Model.objects.filter(pk=1)
nt =  collections.namedtuple('nt','name, age_desc')
kwargs = nt('me', 'getting older') 
qs.update(**kwargs)

在Django中解压缩参数时,没有办法使用namedtuples而不是dict吗?

解决方法:

我不认为Python关键字参数解包(**语法)支持命名元组,但是您可以使用命名元组对象的_asdict()方法从命名元组获取字典.或在3.x上,也可能在2.7.5上的vars()(Get the object name of a specific object from namedtuple对2.7.5安装的状态进行了一些讨论).

标签:iterable-unpacking,python,django
来源: https://codeday.me/bug/20191028/1953615.html