問題タブ [introspection]
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.
c# - JavaのisInstance()に相当するC#は何ですか?
私はとについて知っていis
ますが、リフレクティブisInstance()メソッドはどうですか?as
instanceof
javascript - JavaScriptオブジェクトのイントロスペクションを行う方法は?
すべてのプロービングの後、報告された有効なオブジェクトが、プロービングされた属性に対して「未定義」を返す場合はどうすればよいですか?私はjQueryを使用していますが、関数スコープ内では$('selector').mouseover(function() { });
すべてが「未定義」を返します。$(this)
セレクターはマップタグの「領域」であり、その親属性を探しています。
c++ - xmlの説明がある保存された構造にアクセスする
ある種の内省を可能にするC++ライブラリを設定しました。これにより、最小限のマクロとかなりの量のテンプレートトリックを使用して、メタ情報が豊富な構造とクラスを宣言できます。
このメタ情報は、宣言する構造体/クラスの各フィールドに関するすべての重要な詳細をキャプチャし、ストーリーの最後に、このように強化された構造体/クラスごとに、ダンプするxmlファイルを生成できます。各フィールド、その名前、タイプ、長さ、オフセットなど。
私の問題では、ポインターであるフィールドをサポートする必要はありませんが、プリミティブ型、配列、およびSTLコンテナー(ベクトル、リストなど)のみをサポートする必要があります。
これらのメタエンリッチな構造体/クラス(「プロデューサー」)にデータを入力するコードは、特定の時点でそれらをシリアル化します(今のところ、すべてのプリミティブ型と、STLコンテナーによって使用されるすべての「バッファー」の単純なバイナリダンプです。どれか)。
次に、「プロデューサー」によって作成されたxml記述から始めて、保存されたデータのさまざまなフィールドにアクセスするために、実行時に対応できる「リーダー」の開発を開始する必要があります。
これは動的データディクショナリ解釈の問題だと思いますが、私が知っていることはすべて、バイナリデータとそのxml記述を持っている間にxmlデータを読み戻すことに関連しています...
これを始めるための最良の方法は何ですか?この問題に似ていて、私がインスピレーションを得ることができる何かがそこにありますか?
ruby-on-rails - Ruby on Rails で Math クラスにメソッドを動的に追加するにはどうすればよいですか?
Ruby on Rails の Math クラスに次のメソッドを追加しようとしています。
次に、environment.rb に以下を追加しました。
Rails コンソールを開くと、「./lib/math.rb:2:TypeError Math はクラスではありません」というエラーが表示されます。
非常に単純なものを見落としているようです。
何かご意見は?
よろしくお願いします。
perl - 実行時にPerl関数が存在するかどうかを確認するにはどうすればよいですか?
私はPerlのテストフレームワークに取り組んでいます。テストの一部として、特定のテストに前提条件または事後条件のチェックを追加する必要がある場合がありますが、必ずしもすべてのテストに追加する必要はありません。私がこれまでに得たものは次のようなものです:
残念ながら、関数が存在しない場合、これは「...で呼び出された未定義のサブルーチン&verify_precondition_TEST1」を出力します。
関数を呼び出そうとする前に、関数が存在するかどうかを事前に判断するにはどうすればよいですか?
ruby - ruby では、'load' または 'require' の結果として定義されているモジュールをどのように知ることができますか?
ruby で「require foo」を実行した場合、foo.rb で定義されているモジュールの名前を後で特定する方法はありますか?
たとえば、次のような foo.rb という名前の ruby ファイルがあるとします。
別のスクリプトで、「require foo」を実行した後、MyModule という名前のモジュールがあることをどのように判断できますか?
私が最終的に求めているのは、次のようなことができるようになることです。
モジュール名とファイル名を同じにするように強制することもできますが、そうはしません。短いファイル名を作成する際に、もう少し自由度が欲しいのですが、より表現力豊かなモジュール名が必要です。ただし、各ファイルが単一のモジュール (プラグインと考えてください) のみを定義することを保証します。
python - Pythonクラスの各プロパティとメソッドがどこで定義されているかをどのように判断しますか?
Pythonのあるクラスのインスタンスが与えられた場合、各メソッドとプロパティを定義したソースコードの行を判別できると便利です(たとえば、 1を実装するため)。たとえば、モジュールab.pyが与えられます
定義またはサブクラス化されたソースコード内のファイル名、クラス、および行を含むタプルを返す関数whither(class_、attribute)を定義しattribute
ます。これは、熱心なダイナミズムによる最新の割り当てではなく、クラス本体での定義を意味します。一部の属性に対して「不明」を返す場合は問題ありません。
Ploneを内省するときにこれを使用したいと思います。ここでは、すべてのオブジェクトに数百のメソッドがあり、アルファベットだけでなくクラス別に整理すると非常に便利です。
もちろん、Pythonでは常に合理的に知ることはできませんが、ほとんど静的なコードの一般的なケースで良い答えを得るのは素晴らしいことです。
python - dir(x) 内のすべての名前が属性アクセスに有効ではないのはなぜですか?
__dict__
コーダーが属性アクセスに使用できないものを詰め込むのはなぜですか? たとえば、私の Plone インスタンスでdir(portal)
はindex_html
、 が含まれていますがportal.index_html
、AttributeError が発生します。__class__
の属性についても同様ですProducts.ZCatalog.Catalog.mybrains
。dir()
信頼できない正当な理由はありますか?
inspect
モジュールを調べてみると、この理由と魔法をトリガーしたくないため、属性アクセスの代わりに使用していることがわかりますobject.__dict__['x']
。getattr
python - インスタンスのクラス名を取得しますか?
Python でオブジェクトのインスタンスを作成したクラスの名前を調べるには、これを実行している関数が、インスタンスのクラスが派生した基底クラスである場合、どうすればよいですか?
inspect モジュールがここで私を助けてくれたかもしれないと考えていましたが、私が望むものを与えてくれないようです。メンバーを解析する__class__
までもなく、この情報を取得する方法がわかりません。