問題タブ [instance-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.
ruby - クラスで呼び出されたときに instance_eval() がクラスメソッドを定義するのはなぜですか?
私の理解では、オブジェクトでinstance_evalを呼び出すと、そのオブジェクトのインスタンス変数またはメソッドを定義できるようになるはずです。
しかし、上記の例では、クラス Foo で呼び出して instance_bar メソッドを定義すると、 instance_barは「Foo.instance_bar」で呼び出すことができるクラス メソッドになります。Foo.new.instance_bar の結果が「undefined method 'instance_bar'」になるため、このコードがインスタンス メソッドを作成していないことは明らかです。
このコンテキストで instance_eval がインスタンス メソッドではなくクラス メソッドを定義するのはなぜですか?
iphone - ココアタッチ。これらの NSMutableData メソッドの違いは何ですか?
私が少しはっきりしていないことの 1 つは、これらの NSMutableArray メソッドの違いです。
と
内部では、クラス メソッドは実際に何をしているのでしょうか。インスタンスメソッドとの違いは?
乾杯、ダグ
python - インスタンスメソッドに関するPythonの制限を克服する
Pythonにはインスタンスメソッドに関していくつかの制限があるようです。
- インスタンスメソッドはコピーできません。
- インスタンスメソッドを選択することはできません。
私はインスタンスメソッドを参照する非常にオブジェクト指向のプロジェクトに取り組んでおり、ディープコピーとピクルスの両方を使用しているため、これは私にとって問題です。酸洗いは主にマルチプロセッシングメカニズムによって行われます。
これを解決するための良い方法は何でしょうか?コピーの問題に対していくつかの醜い回避策を実行しましたが、両方の問題に対するより良い解決策を探しています。
誰か提案はありますか?
アップデート:
私のユースケース:私は小さなイベントシステムを持っています。各イベントには、.action
トリガーすることになっている関数を指す属性があり、その関数がオブジェクトのインスタンスメソッドである場合もあります。
ruby - インスタンス メソッドをクラス メソッドに委譲する
Ruby で、Foo
Foo の大規模なコレクションをカタログ化できるクラスがあるとします。すべての Foo が緑色で球状であるというのは基本的な自然の法則であるため、次のようにクラス メソッドを定義しました。
これは私がすることができます
だがしかし
my_foo
それは明白に緑色であるという事実にもかかわらず。
明らかに、 をcolour
呼び出すインスタンス メソッドを定義できますself.class.colour
が、そのような基本的な特性が多数あると扱いにくくなります。
欠落しているメソッドのクラスを試すように定義することでおそらくそれを行うこともできますがmethod_missing
、これが私がやるべきことなのか醜いハックなのか、それとも安全に行う方法なのかはわかりません (特に私は実際に ActiveRecord の下にいるため) Rails では、method_missing を使っていくつかの Clever Fun Stuff を実行していることを理解しています)。
あなたは何をお勧めします?
python - instancemethod デコレーターはどこにありますか?
私のコードには、次のようにクラスのインスタンスを返すメソッドがあります。
物事を整理するために、Props を MyClass 内に配置することを検討しています。次に、次のように、fun をバイパスして、クラスを MyClass のインスタンス メソッドに直接作成します。
コメントに注意してください - instancemethod デコレータは存在しません。
これを行う方法、つまり、呼び出し可能なオブジェクトをインスタンス メソッドに変換する方法はありますか? @instancemethod を @classmethod に変更すると、構築は機能しますが、もちろん親はインスタンスではなくクラスです。反対の操作と思われるものについて何も見つけられないことに驚いています。
これがクリアされたことに興味があります!
編集:
私の質問が明確ではなかったようです。私が持っているのは、単一の値やタプルではなく、データでいっぱいのオブジェクトを返すメンバー関数 fun です。このデータは、MyClass オブジェクトと関数の引数の内容に基づいて生成されます。私の最初のコードは、私が望むことを正確に行います。2番目のコードは、私が好む書き方です。
さらに、私が探しているデコレータは単に次のものであることに気付きました:
もちろん、これは私が回避しようとした「楽しい」方法と同じです。また、一見したところそのように見えるかもしれませんが、些細な「return cls」は同一ではないことに注意してください。
このデコレーターを使用すると、2 番目のクラス定義が有効になり、目的の結果が生成されます。つまり、a.fun() は、a のデータに基づいて (潜在的に) 初期化されるオブジェクトを返します。
classmethod と staticmethod の次に省略されているように見えるため、ここで定義された instancemethod が python 組み込みとして利用できない場合、これはまだ疑問を残しています。でも、そうでなくても、この構造で生きていけると思います。
ruby-on-rails-3 - モデルでインスタンス メソッドではなく、クラス メソッドを定義するにはどうすればよいですか?
Activity.pull_latest
コントローラーから呼び出せるようにしたいのですが、そうすると
私はそれを呼び出さなければなりませんActivity.new.pull_latest
。
モデルでインスタンス メソッドではなく、クラス メソッドを定義するにはどうすればよいですか?
python - Python でインスタンスメソッドに属性を追加する
クラス デコレータとメソッド デコレータをうまく連携させようとしたときに、この動作に遭遇しました。基本的に、メソッド デコレーターはいくつかのメソッドに特別なダミー値を付けてフラグを立て、クラス デコレーターは後で来て、後で値を入力します。これは簡単な例です
明らかに10が得られますが、なぜcow.moo.thing = 5
機能しないのか誰かが知っていますか? cow.moo.thing
そして、なぜcow.moo.__func__.thing = 5
機能するのですか?理由はわかりませんが、dir(cow.moo)
何かを機能させようとしてリスト内のものをランダムにいじっていると、突然機能し、理由がわかりません。
objective-c - Objective-C クラス メソッドはデリゲート メソッドを呼び出しませんが、インスタンス メソッドは呼び出します
次の2つの方法があります。
次のように、authenticateUserToGoogle メソッドをインスタンス メソッドとして呼び出す場合:
次の出力が得られます。
ただし、メソッド シグネチャで「-」を「+」に変更するだけで、authenticateUserToGoogle メソッドをクラス メソッドに変更し、次のように呼び出すとします。
次の出力が得られます。
つまり、クラス メソッドでは、デリゲート メソッド接続 didReceiveResponse が呼び出されることはありません!!
誰かが私にこの動作を説明できますか? ありがとう!
objective-c - Objective C インスタンス メソッド ヘルプ *初心者*
CからObjective-Cへの変換を理解するのに苦労しています:
次のような特定のインスタンス メソッドがあるとします。
私はいくつかのことを理解しています...
- プログラムから呼び出せるインスタンスメソッドです。
- C では、これは何も返しません (カーリー内のコードを実行するだけです)。
- C では、構文がやや混乱しにくくなっています -
(void)InstanceMethod(Char *nameOfArgument)
助けが必要な場所は次のとおりです。
- このメソッドを呼び出すとき、まだ引数を送信していますか?
- もしそうなら、その引数
NSString
はメソッドが名前を付けるインスタンスn
ですか?
そして最後に...話題から外れた
方法があれば...
- (id) は何のためのものですか? それはコンパイラに、任意のタイプのオブジェクトを返すことができることを伝えますか?
初心者を助けてくれてありがとう...どうもありがとう。