我正在阅读这个问题
Constructing Django filter queries dynamically with args and kwargs
我不明白这个运算符(operator)在做什么
filter(reduce(operator.or_, argument_list))
或者这个
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
其中 func
是用户定义的函数。
operator.or_
是一个 python 标准库函数,它包装了 or
运算符。它类似于这段代码:
def or_(a, b):
return a | b
例如:
reduce(operator.or_, [False, False, True])
将返回 True
。
在您的示例上下文中,or
和 and
运算符被重载,因此它应该返回一个由较小部分组合而成的新查询,所有这些部分都由 or
或 and
运算符。
关于python - 这个运算符在 django `reduce(operator.and_, query_list)` 中意味着什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16076894/