这个运算符在 django `reduce(operator.and_, query_list)` 中意味着什么

2023-12-20

我正在读这个问题

使用 args 和 kwargs 动态构建 Django 过滤器查询 https://stackoverflow.com/questions/8510057/constructing-django-filter-queries-dynamically-with-args-and-kwargs?rq=1

我无法了解该操作员的作用

filter(reduce(operator.or_, argument_list))

or this

filter(reduce(operator.and_, query_list))


filter是Django Model Manager的常规方法,所以没什么好解释的。

reduce是一个内置函数,类似于下面的代码:

def reduce(func, items):
    result = items.pop()
    for item in items:
        result = func(result, item)

    return result

Where func是用户定义的函数。

operator.or_是一个Python标准库函数,它包装了or操作员。它类似于以下代码:

def or_(a, b):
    return a | b

例如:

reduce(operator.or_, [False, False, True])

将返回True.

在您的示例上下文中,orand运算符已重载,因此它应该返回一个由较小部分组成的新查询,所有这些部分都由or or and操作员。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

这个运算符在 django `reduce(operator.and_, query_list)` 中意味着什么 的相关文章

随机推荐