1

peewee docsを読んでいると、驚くべき声明を見つけました。

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

うわー、誰かがそれが何をするのか説明してもらえますか? 私はそれ<<が単なるlshift(左シフト)演算子であることを知っています(これはバイナリ表現を整数の左に移動します。同様の動作が右シフトに適用されます)が、これがリストを処理できることを知りませんでした(user.following()is a list )。peewee の作成者によって書かれた演算子のオーバーロードだけですか、それとも私が知らない何らかの Python コア機能ですか?

4

1 に答える 1

1

pewee は確かにoperator overloadingを使用しています。この場合は__lshift__マジック メソッドを使用しています。

于 2013-10-12T22:52:40.453 に答える