問題タブ [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.
python - Python で super() キーワードを使用した単一継承の基本的な例は何ですか?
次のクラスが設定されているとします。
このコンテキストで super() を使用して重複コードを排除するにはどうすればよいでしょうか?
python - Python で super() を使用するのは良い考えですか?
それとも、メソッドを呼び出したいスーパークラスを明示的に参照する必要がありますか?
コンストラクターを参照するときにスーパークラスの名前を繰り返すのは脆いようですが、このページhttp://fuhm.net/super-harmful/は super() の使用に対していくつかの良い議論をしています。
python - メソッドのデフォルトのパラメータ値は*一度*評価されます
新しいスタイルのクラスのサブクラス化と辞書の更新に関する奇妙な問題を発見しました。
デバッグでは、2 回目の呼び出し ( ) で、コンストラクター内が既に と等しいc(3)
ことがわかります。その後、コンストラクターが呼び出されると、両方のオブジェクトになります。a
self.props
{'arg': 2}
b
{'arg': 3}
また、コンストラクターの呼び出し順序は次のとおりです。
コンストラクター内で置き換えるself.props.update()
と、すべてが正常になり、期待どおりに動作しますself.props = {'arg': val}
b
しかし、このプロパティを置き換えるのではなく、更新する必要があります。
objective-c - Objective C カテゴリで Super を使用していますか?
ソースがない Objective C クラスのメソッドをオーバーライドしたいと考えています。
調べたところ、カテゴリでこれを実行できるように思われますが、古いメソッドの結果を取得するために super を使用して、新しいメソッドで古いメソッドの結果を使用したいと考えています。
ただし、これを試すたびに、メソッドが呼び出されますが、「スーパー」は nil です...理由はありますか? XCode 2.2 SDK を使用して iPhone 開発を行っています。私は間違いなくクラスのインスタンスで作業しており、クラスのメソッドはインスタンス メソッドです。
注と説明: Apple Docs で確認できることから、これは許可されるべきだと思われますか?
カテゴリーのドキュメント (developer.apple.com): カテゴリーが継承されたメソッドをオーバーライドする場合、通常どおり、カテゴリー内のメソッドはスーパーへのメッセージを介して継承された実装を呼び出すことができます。ただし、カテゴリのクラスに既に存在するメソッドをカテゴリがオーバーライドする場合、元の実装を呼び出す方法はありません。
java - ジェネリック抽象クラスの拡張とSuperの正しい使用
AT
のジェネリックをTool
AbstractToolコンストラクターに渡すためにsuperを正しく呼び出すにはどうすればよいですか?
AT
私が宣言するときに何を選んだとしてもTool
(Say、Tool<Thing>
)、私は常にのAbstractThing
代わりに戻ってくるようですThing
。これはジェネリックの目的を打ち負かすようです...
ヘルプ?
objective-c - Objective-CでCategoriesを使用するプライベートメソッド:サブクラスからsuperを呼び出す
私はObjective-Cでプライベートメソッドを実装する方法(Objective-Cでクラスのプライベートメソッドを定義する最良の方法)を読んでいて、質問が頭に浮かびました:
保護されたメソッド、つまりサブクラスに表示されるプライベートメソッドをどのように実装しますか?
すべてのプライベートメソッドを含むカテゴリを持つMySuperClassがあり、MySuperClassプライベートメソッドの1つに対してスーパーをオーバーライドまたは呼び出すMySubclassを実装するとします。それは可能ですか(プライベートメソッドの実装に向けたカテゴリアプローチを使用)?
このコードのいくつかを見てください。下部にオーバーライドされたメソッドがあります。
うまくいけば、誰かがすでにこれを理解しています。
乾杯!
python - 親がオブジェクトから継承されていない場合、super() はエラーで失敗します: TypeError "argument 1 must be type, not classobj"
理解できないエラーが発生します。サンプル コードの何が問題なのか手がかりはありますか?
「スーパー」組み込みメソッドの助けを借りて、サンプル テスト コードを取得しました。
エラーは次のとおりです。
参考までに、これはpython自体からのヘルプ(スーパー)です:
java - 単一のオブジェクトでスーパータイプのジェネリックパラメーターを受け入れるにはどうすればよいですか?
クラスのジェネリックTypeのスーパータイプのみを受け入れることは可能ですか?
私が探しているのは次のようなものです。
私はもうそれを本当に必要としません(そしてそれはおそらく最初からそれほど有用ではありません)が、これが可能であるかどうか、そしてそうでない場合はなぜか興味があります。
python - クラスメソッドでsuperを使用する
Pythonでsuper()関数を学習しようとしています。
この例(2.6)に出くわして行き詰まるまで、私はそれを理解していると思いました。
例の直前にこの行を読んだとき、それは私が期待したものではありませんでした。
クラスメソッドを使用している場合、superを呼び出すインスタンスはありません。私たちにとって幸いなことに、superは2番目の引数として型を使用しても機能します。---以下に示すように、タイプを直接superに渡すことができます。
これは、Pythonがdo_something()をBのインスタンスで呼び出す必要があると言っても不可能だと言っていることです。
python - ネストされたクラスでの super() の使用
これを想像してください:
これによりエラーが発生します。
を試しましA.B
たが、A
定義されていないと表示されます。
アップデート:
問題が見つかりました。
私はこのようなクラスを持っていました:
そのスコープでは、 A はまだ定義されていません。