問題タブ [class-method]

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 投票する
1 に答える
2082 参照

python - Pythonでスーパークラスのクラスメソッドを呼び出す

私はCouchDBサポートをFlaskに追加するFlask拡張機能に取り組んでいます。簡単にするcouchdb.mapping.Documentためにstoreloadメソッドが現在のスレッドローカルデータベースを使用できるようにサブクラス化しました。現在、私のコードは次のようになっています。

簡潔にするためにいくつか省略しましたが、それは重要な部分です。ただし、classmethodの動作方法により、このメソッドを呼び出そうとすると、エラーメッセージが表示されます。

呼び出しをに置き換えてテストしましたが、機能しますが、内部属性にmapping.Document.load.im_func(cls, db or g.couch, id)アクセスすることに特に満足していません(文書化されている場合でも)。im_誰かがこれを処理するためのよりエレガントな方法を持っていますか?

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

java - クラスメソッドの継承

Javaの静的メソッドには継承がないと言われましたが、次のテストを試してみると




印刷しました:

TestInheritenceA ClassA

したがって、Java静的メソッド(およびフィールド)には継承があります(クラスメソッドを呼び出そうとすると、継承チェーンに沿ってクラスメソッドを探します)。これはそうではありませんでしたか?そして、クラスメソッドのためにそのように台無しにされている継承オブジェクト指向言語はありますか?


明らかに静的メソッドは継承されますが、オーバーライドすることはできません。c#はその問題を共有しますか?他の言語はありますか?

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

python - 同じクラスのメソッド内のデフォルトのパラメーター値としてクラス/静的メソッドを使用する

私はこのようなことをしたいです:

誰かができるという考えで

また、魔法の機械学習を行うこともできます。この最後のビットは私にとって特に興味深いものではありません。これは、関数内のコンテキストと呼び出し元の観点の両方で静的メソッドの使用を例示する方法として私が最初に思いついたものです。

とにかく、これは実際には関数ではないため、機能しません。これは、メソッドが元の関数を返すis_silly_enoughオブジェクトです。これは、オブジェクト属性として参照されている場合にのみ「通常の」方法で機能することを意味します。問題のオブジェクトは、デコレータがの属性とその名前で最初に定義された関数の間に配置する関数によって作成されます。__get__is_silly_enoughstaticmethod()SillyWalkis_silly_enough

これは、いずれかまたはその呼び出し元appraisal_method内からのデフォルト値を使用するには、次のいずれかを行う必要があることを意味します。 SillyWalk.walk

  • ただ呼び出すappraisal_method.__get__(instance, owner)(...)のではなく呼び出すappraisal_method(...)
  • または、それをオブジェクトの属性として割り当ててから、そのオブジェクトプロパティを、呼び出すのと同じように呼び出すメソッドとして参照しますappraisal_method

これらのソリューションのどちらも特にPythonic™のようには見えないので、この種の機能を取得するためのより良い方法があるのではないかと思います。基本的に、メソッドがデフォルトで特定のクラスまたは同じクラスのスコープ内で定義された静的メソッドを使用して、その日課の一部を実行するように指定する方法が必要です。

その特定の関数を呼び出さないようにするというメッセージを伝えNoneたいので、は使用しない方がいいです。またはNoneのような他の値を使用できると思いますが、a)厄介なb)表現できるように見える何かのために、余分な数行のコードや、それ以外の場合は冗長なドキュメントを作成する必要があるのは面倒なようですデフォルトパラメータとして非常に簡潔に。FalseNotImplemented

これを行うための最良の方法は何ですか?

0 投票する
2 に答える
159 参照

objective-c - 複数の ObjC クラスに同じメッセージを渡す

複数のクラスがあり、そのすべてに同じメッセージを送信したいと考えています。より明確にするために:

同じパラメーターを指定して doX:withClass: を複数のクラスに送信したいと考えています。おそらくコードはそれをより明確にするでしょう:

特定のプロトコルを実装するクラスで同様のことを行う 3 つのメソッドがあります (doX:withClass: メソッドは、指定されたクラスがそのようなプロトコルを実装していると仮定して、いくつかの手順を実行します)。

私の質問は、どうすればよりプログラム的にクラスをループできるので、リストに追加するだけで (コード内 - 実行時に追加できることに興味がない)、ループに追加できますか?

0 投票する
2 に答える
7254 参照

objective-c - Objective-c:クラスメソッドでクラスインスタンスを取得するにはどうすればよいですか

親と子の 2 つのクラスがあり、親には func という名前のクラス メソッドがあります。今、どのクラスが呼び出し元であるかを区別するために、func メソッドで Class インスタンスを取得したいと考えています。

クラスメソッドでクラスインスタンス(またはクラス名)を取得する方法はありますか?

0 投票する
5 に答える
34781 参照

python - Python の静的/クラス変数の __getattr__

私は次のようなクラスを持っています:

MyClass.FooorMyClass.Barが呼び出されるたびに、値が返される前にカスタム メソッドを呼び出す必要があります。Pythonで可能ですか?__getattr__クラスのインスタンスを作成し、独自のメソッドを定義できれば、それが可能であることはわかっています。しかし、私のシナリオでは、このクラスをインスタンスを作成せずにそのまま使用します。

また、呼び出されたときに呼び出されるカスタム__str__メソッドが必要str(MyClass.Foo)です。Python はそのようなオプションを提供していますか?

0 投票する
1 に答える
110 参照

ruby - Ruby Object クラスでクラスメソッドを定義した場合、このメソッドを呼び出す子クラスの名前を取得するにはどうすればよいですか?

どうすれば入ることができAますObject#const_missingか?

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

ruby - Ruby モジュールと自己拡張

コードはどのような状況にありますか。

次のように言うよりも使用する方が有益です。

上はインスタンスメソッドを拡張したもので、後者はただのクラスメソッドですが、どちらのメソッドを呼び出すときも M.greet しなければなりませんよね?あるコードを別のコードよりもいつ使用するかについて誰かが光を当てることができるかどうか、私はただ興味がありました. ありがとう!

0 投票する
9 に答える
21771 参照

python - クラス内のすべての関数にデコレータをアタッチする

私は実際にこれを行う必要はありませんが、関数ごとに明示的に宣言するのではなく、クラス内のすべての関数にデコレータを一般的にバインドする方法があるのではないかと思っていました。

デコレーターではなく、一種のアスペクトになると思いますが、少し奇妙に感じますが、タイミングや認証のようなものを考えていました。

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

ruby - 外部のローカル変数を参照するクラス メソッドを動的に定義する方法は?

def新しいスコープが作成されたため、これは正しくありません。define_methoduseは新しいスコープを作成せずにインスタンス メソッドを作成できることも知っていますが、要点はクラス メソッドを定義する方法です。