問題タブ [python-datamodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1189 参照

python - Python に "__req__" (反映された等価) メソッドがないのはなぜですか?

私は小さなヘルパークラスを持っています:

これにより、次のような甘い魔法を実行できます。

( のように) リスト内包表記を使用する必要はありませnp.array(x in (2,3) for x in arrん。

(私は、(信頼できる) ユーザーが任意のコードを入力できるようにする UI を維持しており、a == AnyOf(1,2,3)技術に詳しくないユーザーにとっては、リストの理解よりもはるかに受け入れやすいものです。)

でも!

これは一方向にしか機能しません。たとえば、AnyOf(2,3) == arrそうすると、AnyOfクラスの__eq__メソッドが呼び出されることはありません。代わりに、NumPy 配列のメソッドが呼び出され、内部的に (推測すると思いますが)そのすべての要素の__eq__メソッドが呼び出されます。__eq__

これは私を疑問に思いました: なぜ Python は右辺の同等物を許可しないの__eq__ですか? __radd__( 、 などのメソッドとほぼ同等__rmul__です。)