問題タブ [super]

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

python - Python で super() キーワードを使用した単一継承の基本的な例は何ですか?

次のクラスが設定されているとします。

このコンテキストで super() を使用して重複コードを排除するにはどうすればよいでしょうか?

0 投票する
6 に答える
4881 参照

python - Python で super() を使用するのは良い考えですか?

それとも、メソッドを呼び出したいスーパークラスを明示的に参照する必要がありますか?

コンストラクターを参照するときにスーパークラスの名前を繰り返すのは脆いようですが、このページhttp://fuhm.net/super-harmful/は super() の使用に対していくつかの良い議論をしています。

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

python - メソッドのデフォルトのパラメータ値は*一度*評価されます

新しいスタイルのクラスのサブクラス化と辞書の更新に関する奇妙な問題を発見しました。

デバッグでは、2 回目の呼び出し ( ) で、コンストラクター内が既に と等しいc(3)ことがわかります。その後、コンストラクターが呼び出されると、両方のオブジェクトになります。aself.props{'arg': 2}b{'arg': 3}

また、コンストラクターの呼び出し順序は次のとおりです。

コンストラクター内で置き換えるself.props.update()と、すべてが正常になり、期待どおりに動作しますself.props = {'arg': val}b

しかし、このプロパティを置き換えるのではなく、更新する必要があります。

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

objective-c - Objective C カテゴリで Super を使用していますか?

ソースがない Objective C クラスのメソッドをオーバーライドしたいと考えています。

調べたところ、カテゴリでこれを実行できるように思われますが、古いメソッドの結果を取得するために super を使用して、新しいメソッドで古いメソッドの結果を使用したいと考えています。

ただし、これを試すたびに、メソッドが呼び出されますが、「スーパー」は nil です...理由はありますか? XCode 2.2 SDK を使用して iPhone 開発を行っています。私は間違いなくクラスのインスタンスで作業しており、クラスのメソッドはインスタンス メソッドです。

注と説明: Apple Docs で確認できることから、これは許可されるべきだと思われますか?

カテゴリーのドキュメント (developer.apple.com): カテゴリーが継承されたメソッドをオーバーライドする場合、通常どおり、カテゴリー内のメソッドはスーパーへのメッセージを介して継承された実装を呼び出すことができます。ただし、カテゴリのクラスに既に存在するメソッドをカテゴリがオーバーライドする場合、元の実装を呼び出す方法はありません。

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

java - ジェネリック抽象クラスの拡張とSuperの正しい使用

ATのジェネリックをToolAbstractToolコンストラクターに渡すためにsuperを正しく呼び出すにはどうすればよいですか?

AT私が宣言するときに何を選んだとしてもTool(Say、Tool<Thing>)、私は常にのAbstractThing代わりに戻ってくるようですThing。これはジェネリックの目的を打ち負かすようです...

ヘルプ?

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

objective-c - Objective-CでCategoriesを使用するプライベートメソッド:サブクラスからsuperを呼び出す

私はObjective-Cでプライベートメソッドを実装する方法(Objective-Cでクラスのプライベートメソッドを定義する最良の方法)を読んでいて、質問が頭に浮かびました:

保護されたメソッド、つまりサブクラスに表示されるプライベートメソッドをどのように実装しますか?

すべてのプライベートメソッドを含むカテゴリを持つMySuperClassがあり、MySuperClassプライベートメソッドの1つに対してスーパーをオーバーライドまたは呼び出すMySubclassを実装するとします。それは可能ですか(プライベートメソッドの実装に向けたカテゴリアプローチを使用)?

このコードのいくつかを見てください。下部にオーバーライドされたメソッドがあります。

うまくいけば、誰かがすでにこれを理解しています。

乾杯!

0 投票する
4 に答える
143610 参照

python - 親がオブジェクトから継承されていない場合、super() はエラーで失敗します: TypeError "argument 1 must be type, not classobj"

理解できないエラーが発生します。サンプル コードの何が問題なのか手がかりはありますか?

「スーパー」組み込みメソッドの助けを借りて、サンプル テスト コードを取得しました。

エラーは次のとおりです。

参考までに、これはpython自体からのヘルプ(スーパー)です:

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

java - 単一のオブジェクトでスーパータイプのジェネリックパラメーターを受け入れるにはどうすればよいですか?

クラスのジェネリックTypeのスーパータイプのみを受け入れることは可能ですか?

私が探しているのは次のようなものです。

私はもうそれを本当に必要としません(そしてそれはおそらく最初からそれほど有用ではありません)が、これが可能であるかどうか、そしてそうでない場合はなぜか興味があります。

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

python - クラスメソッドでsuperを使用する

Pythonでsuper()関数を学習しようとしています。

この例(2.6)に出くわして行き詰まるまで、私はそれを理解していると思いました。

http://www.cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.html#super-with-classmethod-example

例の直前にこの行を読んだとき、それは私が期待したものではありませんでした。

クラスメソッドを使用している場合、superを呼び出すインスタンスはありません。私たちにとって幸いなことに、superは2番目の引数として型を使用しても機能します。---以下に示すように、タイプを直接superに渡すことができます。

これは、Pythonがdo_something()をBのインスタンスで呼び出す必要があると言っても不可能だと言っていることです。

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

python - ネストされたクラスでの super() の使用

これを想像してください:

これによりエラーが発生します。

を試しましA.Bたが、A定義されていないと表示されます。

アップデート:

問題が見つかりました。

私はこのようなクラスを持っていました:

そのスコープでは、 A はまだ定義されていません。