python peewee docs:example app:未知的语法/功能

时间:2013-10-12 22:37:29

标签: python operators operator-overloading peewee

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

# python code
messages = Message.select().where(
    Message.user << user.following()
)
哇,有人可以解释一下这是做什么的吗?我知道<<只是一个lshift(左移)运算符(它为汉字移动了二进制表示,类似的行为适用于右移),但我不知道这可以处理列表({{1}是一个列表)。它只是由peewee作者编写的运算符重载或某种我不知道的python核心功能吗?

1 个答案:

答案 0 :(得分:1)

pewee确实uses operator overloading,在这种情况下使用__lshift__魔法。