問題タブ [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.
python - Pythonでスーパークラスのクラスメソッドを呼び出す
私はCouchDBサポートをFlaskに追加するFlask拡張機能に取り組んでいます。簡単にするcouchdb.mapping.Document
ためにstore
、load
メソッドが現在のスレッドローカルデータベースを使用できるようにサブクラス化しました。現在、私のコードは次のようになっています。
簡潔にするためにいくつか省略しましたが、それは重要な部分です。ただし、classmethodの動作方法により、このメソッドを呼び出そうとすると、エラーメッセージが表示されます。
呼び出しをに置き換えてテストしましたが、機能しますが、内部属性にmapping.Document.load.im_func(cls, db or g.couch, id)
アクセスすることに特に満足していません(文書化されている場合でも)。im_
誰かがこれを処理するためのよりエレガントな方法を持っていますか?
java - クラスメソッドの継承
Javaの静的メソッドには継承がないと言われましたが、次のテストを試してみると
印刷しました:
TestInheritenceA ClassA
したがって、Java静的メソッド(およびフィールド)には継承があります(クラスメソッドを呼び出そうとすると、継承チェーンに沿ってクラスメソッドを探します)。これはそうではありませんでしたか?そして、クラスメソッドのためにそのように台無しにされている継承オブジェクト指向言語はありますか?
明らかに静的メソッドは継承されますが、オーバーライドすることはできません。c#はその問題を共有しますか?他の言語はありますか?
python - 同じクラスのメソッド内のデフォルトのパラメーター値としてクラス/静的メソッドを使用する
私はこのようなことをしたいです:
誰かができるという考えで
また、魔法の機械学習を行うこともできます。この最後のビットは私にとって特に興味深いものではありません。これは、関数内のコンテキストと呼び出し元の観点の両方で静的メソッドの使用を例示する方法として私が最初に思いついたものです。
とにかく、これは実際には関数ではないため、機能しません。これは、メソッドが元の関数を返すis_silly_enough
オブジェクトです。これは、オブジェクト属性として参照されている場合にのみ「通常の」方法で機能することを意味します。問題のオブジェクトは、デコレータがの属性とその名前で最初に定義された関数の間に配置する関数によって作成されます。__get__
is_silly_enough
staticmethod()
SillyWalk
is_silly_enough
これは、いずれかまたはその呼び出し元appraisal_method
内からのデフォルト値を使用するには、次のいずれかを行う必要があることを意味します。 SillyWalk.walk
- ただ呼び出す
appraisal_method.__get__(instance, owner)(...)
のではなく呼び出すappraisal_method(...)
- または、それをオブジェクトの属性として割り当ててから、そのオブジェクトプロパティを、呼び出すのと同じように呼び出すメソッドとして参照します
appraisal_method
。
これらのソリューションのどちらも特にPythonic™のようには見えないので、この種の機能を取得するためのより良い方法があるのではないかと思います。基本的に、メソッドがデフォルトで特定のクラスまたは同じクラスのスコープ内で定義された静的メソッドを使用して、その日課の一部を実行するように指定する方法が必要です。
その特定の関数を呼び出さないようにするというメッセージを伝えNone
たいので、は使用しない方がいいです。またはNone
のような他の値を使用できると思いますが、a)厄介なb)表現できるように見える何かのために、余分な数行のコードや、それ以外の場合は冗長なドキュメントを作成する必要があるのは面倒なようですデフォルトパラメータとして非常に簡潔に。False
NotImplemented
これを行うための最良の方法は何ですか?
objective-c - 複数の ObjC クラスに同じメッセージを渡す
複数のクラスがあり、そのすべてに同じメッセージを送信したいと考えています。より明確にするために:
同じパラメーターを指定して doX:withClass: を複数のクラスに送信したいと考えています。おそらくコードはそれをより明確にするでしょう:
特定のプロトコルを実装するクラスで同様のことを行う 3 つのメソッドがあります (doX:withClass: メソッドは、指定されたクラスがそのようなプロトコルを実装していると仮定して、いくつかの手順を実行します)。
私の質問は、どうすればよりプログラム的にクラスをループできるので、リストに追加するだけで (コード内 - 実行時に追加できることに興味がない)、ループに追加できますか?
objective-c - Objective-c:クラスメソッドでクラスインスタンスを取得するにはどうすればよいですか
親と子の 2 つのクラスがあり、親には func という名前のクラス メソッドがあります。今、どのクラスが呼び出し元であるかを区別するために、func メソッドで Class インスタンスを取得したいと考えています。
クラスメソッドでクラスインスタンス(またはクラス名)を取得する方法はありますか?
python - Python の静的/クラス変数の __getattr__
私は次のようなクラスを持っています:
MyClass.Foo
orMyClass.Bar
が呼び出されるたびに、値が返される前にカスタム メソッドを呼び出す必要があります。Pythonで可能ですか?__getattr__
クラスのインスタンスを作成し、独自のメソッドを定義できれば、それが可能であることはわかっています。しかし、私のシナリオでは、このクラスをインスタンスを作成せずにそのまま使用します。
また、呼び出されたときに呼び出されるカスタム__str__
メソッドが必要str(MyClass.Foo)
です。Python はそのようなオプションを提供していますか?
ruby - Ruby Object クラスでクラスメソッドを定義した場合、このメソッドを呼び出す子クラスの名前を取得するにはどうすればよいですか?
例
どうすれば入ることができA
ますObject#const_missing
か?
ruby - Ruby モジュールと自己拡張
コードはどのような状況にありますか。
次のように言うよりも使用する方が有益です。
上はインスタンスメソッドを拡張したもので、後者はただのクラスメソッドですが、どちらのメソッドを呼び出すときも M.greet しなければなりませんよね?あるコードを別のコードよりもいつ使用するかについて誰かが光を当てることができるかどうか、私はただ興味がありました. ありがとう!
python - クラス内のすべての関数にデコレータをアタッチする
私は実際にこれを行う必要はありませんが、関数ごとに明示的に宣言するのではなく、クラス内のすべての関数にデコレータを一般的にバインドする方法があるのではないかと思っていました。
デコレーターではなく、一種のアスペクトになると思いますが、少し奇妙に感じますが、タイミングや認証のようなものを考えていました。
ruby - 外部のローカル変数を参照するクラス メソッドを動的に定義する方法は?
def
新しいスコープが作成されたため、これは正しくありません。define_method
useは新しいスコープを作成せずにインスタンス メソッドを作成できることも知っていますが、要点はクラス メソッドを定義する方法です。