問題タブ [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.
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__
です。)