这些 Peewee 查询过滤器表单有什么区别

What is the difference between these Peewee query filter forms

filtering records in Peewee的描述中,有两种替代语法的例子:使用逗号来分隔多个条件,比如下面的例子,

Tweet.select().where(Tweet.user == user, Tweet.is_published == True)

并使用 按位运算符。我无法弄清楚(也找不到描述)使用逗号语法和使用按位运算符之间的区别。逗号语法实际上做了什么?从使用逗号的(单个)文档示例来看,它 似乎 可能等同于使用 &,如

Tweet.select().where( (Tweet.user == user) & (Tweet.is_published == True) )

是这样吗?

是的,根据代码,它们是等价的:

    def where(self, *expressions):
        if self._where is not None:
            expressions = (self._where,) + expressions
        self._where = reduce(operator.and_, expressions)