1

在阅读peewee docs时,我发现了一个令人惊讶的声明:

# python code
messages = Message.select().where(
    Message.user << user.following()
)

哇,有人可以解释一下这是做什么的吗?我知道这<<只是一个 lshift (左移)运算符(它将二进制表示向左移动以供整数,类似的行为适用于右移),但我不知道这可以处理列表(user.following()是一个列表)。它只是peewee作者编写的运算符重载还是我不知道的某种python核心功能?

4

1 回答 1

1

pewee 确实使用了运算符重载,在这种情况下使用了__lshift__魔术方法。

于 2013-10-12T22:52:40.453 回答