私は正しく動作するように取り組んでいるUIプロジェクトのテーママネージャにどのようなシステムを使用しているのか把握しようとしています。Python super()と継承したクラスディレクトリの場所
例:
ファイル構造:
element.py - class Element()
button.py - class Button(Element)
text.py - class Text(Element)
input/text.py - class Text(Element)
私は私のテーマで異なる性質のために、クラス名を使用します。 (CSSに似ています)
「要素」はテキストの色を白にすることができます。
私は現在、すべてのUI要素は「要素」から継承し、使用しています
self.__class__.__name__.lower()
これは「ボタン」と「要素」のために働いている、問題はテキスト対input.textのために戦場に出ます。テキストはすべての要素に表示されるようにテキストを表示するためのものですが、input.textクラスにはTextという名前も付けられていますが、テキスト入力にも使用されており、 'text'の代わりに 'input.text'私は今クラスに名前をつけています。名前。
これを最後に設定しようとしているので、他の人が要素を追加し、ディレクトリ構造をプロパティセレクタの一部として使用できるようにするプラグインシステムがあります。
例えば:私はスーパー()の呼び出しからの要素の「自己」「element.py」であるところ、以下のディレクトリにあるかどうかを確認するためのpythonを取得する方法を把握しようとしています
Button class: button
Text class: text
Text Input class: text, but in the directory 'input'
。これは、チェックするプロパティのクラス名にディレクトリ名を追加します。
最終的な結果は次のようになります。
element
button
text
input.text
TLDR:私は、継承されたクラスは異なる基底クラスよりもディレクトリと何そのディレクトリと呼ばれているかどうかを確認する方法を知っておく必要があります。
ありがとうございました。
私は、あなたがやろうとしていることは、実装が簡単であるか、一般的には良いアイデアだとは思わない。 1)Input/text.pyのクラス名を 'InputText'に変更してください。2)ファイル名とパス名に基づいてクラス名を作成してください。クラス名とファイルパスを使用するよりも良い)、または3)クラス名をデフォルトにするが、オプションのフィールドをどこかに指定することによってクラスが名前を上書きできるようにする。あなたの質問に応じて編集してください。 – supersam654