当我阅读peewee docs时,我发现了一个令人惊讶的说法:
# python code
messages = Message.select().where(
Message.user << user.following()
)
哇,有人能解释一下这是怎么回事吗?我知道<<
只是一个lshift(left shift)操作符(它将二进制表示形式向左移动,类似的行为适用于right shift),但我不知道它可以处理列表(user.following()
是一个列表)。它只是peewee作者编写的操作符重载,还是我不知道的python核心特性?你知道吗
实际上是uses operator overloading,在本例中是使用^{} 魔术方法。你知道吗
相关问题 更多 >
编程相关推荐