問題タブ [subclass]
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.
iphone - Objective-C でサブクラス化を使用すると、どこまで行くことができますか?
iPhone アプリでは、UINavigationController クラスの外観をカスタマイズする必要があります。たとえば、バーとフォント サイズを大きくします。私のクライアントは本当にそれを必要としており、さらに大きなボタンも必要としています。
そこで、クラスをゼロから作成する代わりに、UINavigationController をサブクラス化することにしました。私の質問は、メソッドまたは属性のデフォルト値をカスタマイズできますか? クラスをサブクラス化する際に制限はありますか?
subclass - Python でのインスタンスの再クラス化
外部ライブラリによって提供されるクラスがあります。このクラスのサブクラスを作成しました。元のクラスのインスタンスもあります。
インスタンスが既に持っているプロパティを変更せずに、このインスタンスをサブクラスのインスタンスに変換したいと考えています (サブクラスがオーバーライドするものを除く)。
次の解決策はうまくいくようです。
__class__ただし、特に魔法の再割り当てが正しく感じられないため、このソリューションに私が考えていなかった警告が含まれていないとは確信していません (トリプルネゲートで申し訳ありません) 。これが機能したとしても、これを行うにはもっとPython的な方法があるはずだと感じずにはいられません。
ある?
編集:回答ありがとうございます。ここに私が彼らから得たものがあります:
代入によってインスタンスを再分類するという考えは
__class__広く使用されているイディオムではありませんが、ほとんどの回答 (執筆時点で 6 人中 4 人) が有効なアプローチであると考えています。ある回答者 (ojrac による) は、「一見するとかなり奇妙だ」と述べていますが、これには同意します (それが質問をする理由でした)。1 つの回答 (Jason Baker によるもの、2 つの肯定的なコメントと投票) だけが、これを行うことを積極的に思いとどまらせましたが、一般的な手法よりもユースケースの例に基づいてそうしました。肯定的であろうとなかろうと、この方法で実際の技術的な問題を見つける答えはありません。小さな例外は、古いスタイルのクラスに注意するように言及している jls です。新しいスタイルのクラスを意識した C 拡張機能は、Python 自体と同じようにこのメソッドで問題ないと思います (後者が正しいと仮定します)。
これがどれほどPythonicであるかという質問に関しては、いくつかの肯定的な答えがありましたが、本当の理由は示されていません. Zen ( import this) を見ると、この場合の最も重要なルールは「明示的は暗黙的よりも優れている」ということだと思います。ただし、その規則がこのように再分類することに賛成か反対かはわかりません。
{has,get,set}attr魔法を使用する代わりにオブジェクトに明示的に変更を加えているため、使用はより明確に見えます。__class__ = newclass暗黙のうちに属性を変更するのではなく、「これは現在、クラス 'newclass' のオブジェクトです。別の動作を期待してください」と明示的に言うため、使用はより明確に見えますが、オブジェクトのユーザーは古いクラスの通常のオブジェクトを扱っていると信じています。
要約: 技術的な観点からは、この方法は問題ないようです。pythonicity の質問は、「はい」に偏っており、未回答のままです。
Mercurial プラグインの例は非常に強力なものであるため (また、私がまだ自分自身に尋ねたことのない質問にも回答しているため)、Martin Geisler の回答を受け入れました。ただし、pythonicity の質問について何らかの議論がある場合は、引き続き聞きたいと思います。今までありがとう。
PS 実際の使用例は、実行時に追加機能を拡張する必要がある UI データ コントロール オブジェクトです。ただし、質問は非常に一般的なものです。
c# - C#サブクラスから詳細を取得する
私はC#の完全な初心者なので、これが奇妙に見えたらすみません。
vefHlutir という抽象クラスがあります
//Here is an object that inherits from this abstract class:
//And here is the code I'm trying to run, Item, User and Category all inherit from vefHlutir:
私の問題は、メソッド prenta を使用できないことです。
私はいつもこれらのエラーを受け取ります:
エラー 1 'Forsíða.prenta(System.Collections.Generic.List, System.Web.UI.WebControls.Table)' に最適なオーバーロードされたメソッド マッチには無効な引数が含まれています
エラー 2 引数 '1': 'System.Collections.Generic.List' から 'System.Collections.Generic.List' に変換できません
これを解決するにはどうすればよいですか?
qt - ウィジェットをサブクラス化して要素を追加する方法は?
入力時に結果をフィルタリングするために、上部にQTableView埋め込まれたサブクラスを作成しようとしています。QLineEdit通常の と同じ API を持つテーブルが必要なので、サブクラス化してandを追加するのQTableViewではなく、サブクラス化したいと考えています。QWidgetQLineEditQTableView
を再実装し、を少し低く開始するようpaintEvent(QPaintEvent*)に変更し( aQPaintEventの高さ、その下に描画される)、それを に渡すことができると考えましたが、引数は、再描画する必要がある領域を指定するだけであり、再描画する必要はありません。ウィジェットがペイントされる領域。rect()QLineEditQTableView::paintEvent()QPaintEvent
django - Django でのクラスとサブクラスのフィルタリング
FAQアプリを使用したプロジェクトがあります。このアプリには、FAQ (サイトの作成者によって作成された) と UserFAQ (ユーザーによって作成された - 単なる巧妙な名前ではありません) のモデルがあります。特定の条件に一致するすべてのエントリ、FAQ、または UserFAQ を返したいのですが、特定の条件に一致しない UserFAQ も除外したいと考えています。理想的には、次のようになります。
「show_on_site」は、UserFAQ オブジェクトのみが持つプロパティです。プロパティを所有していないため、フィルターが親クラスでクラップアウトするため、これは機能しません。これを行う最善の方法は何ですか?このスニペットに出くわしましたが、やりたいことはやり過ぎのようです。
python - Pythonでファイルタイプをどのようにサブクラス化しますか?
filePythonの組み込みクラスをサブクラス化して、とにいくつかの機能を追加しようとしてstdinいますstdout。これが私がこれまでに持っているコードです:
目的は、各メッセージの先頭にタイムスタンプを追加し、すべてをログファイルに記録することです。しかし、私が遭遇する問題は、これを行うと次のようになることです。
それから私がやろうとするとprint 'foo'、私はを取得しValueError: I/O operation on closed fileます。新しいファイルを開きたくないので、意味のある呼び出しを行うことができません。また、読み取り専用の属性であるため、割り当てることfile.__init__()もできません。__init__()self.closed = False
print 'foo'これを変更して、すべての標準file属性とメソッドをサポートできるようにするにはどうすればよいですか?
c# - オブジェクトをサブクラスオブジェクトに「複製」する方法は?
クラスAと、クラスBを継承Aし、いくつかのフィールドで拡張するクラスがあります。
atypeのオブジェクトがある場合、オブジェクトに含まれるすべてのデータを含むtypeAのオブジェクトを作成するにはどうすればよいですか?bBa
試してみましたが、別の型オブジェクトa.MemberwiseClone()しか得られません。また、継承関係では反対のキャストしか許可されていないため、AキャストAすることはできません。B
これを行う正しい方法は何ですか?
vb6 - SetWindowSubclassがユーザーオブジェクトをリークしています
Bearを使用してユーザーオブジェクトを検査していますが、RemoveWindowSubclassでWindowProcカウントが減少することはありません。タスクマネージャのユーザーオブジェクトであるUSERの合計も同様です。
ウィンドウを破棄する前にサブクラスを削除することについてのレイモンドのより安全なサブクラス化のコメントを読みましたが、私のテストはウィンドウを破棄せずに行われました。
同じサブクラス化APIが、TTF_SUBCLASSされたツールのcomctlのツールチップクラスによって内部的に使用されるため、非協調的なツールチップを使用している場合は、より多くのリークが発生します。
これがVB6コードです
誰かがコメントを残すことができれば、何が起こっているのか、そしてリークを解決する方法は素晴らしいでしょう。
SetWindowSubclass APIを使用して集中的なサブクラス化を行っている場合は、他の人に警告が表示されます。
乾杯、
</ wqw>
ruby-on-rails - サブクラスの一覧表示は Ruby スクリプト/コンソールでは機能しませんか?
これは機能します:
しかし、これはそうではありません。User私のアプリケーションのクラスです。
しかし、これはそうです!
何が起きてる?のサブクラスをリストするにはどうすればよいUserですか?
javascript - JavaScript オブジェクトのサブクラス
スーパークラス A から継承するサブクラス B を作成したいと思います。私のコードは次のとおりです。
実行すると、B is undefined と表示されます。