継承されていないPython *クラス*に属性を追加するにはどうすればよいですか?

ブライアン・オークリー

サブクラスからは見えないクラスクラスのインスタンスではない)にフラグを設定できる必要があります。問題は、それは可能ですか、もしそうならどうすればいいですか?

説明のために、私はこのようなものが欲しいです:

class Master(SomeOtherClass):
    __flag__ = True

class Child(Master):
    pass

...どこにhasattr(Master, "__flag__")戻るTrue必要MasterがありますFalseChildこれは可能ですか?もしそうなら、どのように?__flag__すべての子で明示的にfalseに設定する必要はありません

私の最初の考えは定義する__metaclass__ことでしたが、Master私が制御しておらずプライベートな他のクラスやメタクラスから継承しているため、それを行う余裕はありません。

最終的には、次のようなことができるようにデコレータを作成したいと考えています。

@hide_this
class Master(SomeOtherClass): pass

@hide_this
class Child(Master): pass

class GrandChild(Child): pass
...
for cls in (Master, Child, GrandChild)
    if cls.__hidden__:
        # Master, Child
    else:
        # GrandChild
jonrsharpe

あなたはとても近かった:

class Master(SomeOtherClass):
    __flag = True

class Child(Master):
    pass

末尾にアンダースコアない2つの先頭のアンダースコアは、名前マングリングを呼び出すため、属性には_Master__flagという名前が付けられます。したがって、次のことを確認してください。

hasattr(cls, '_{}__flag'.format(cls.__name__))

のためだけでありTrueMasterではありませんChild

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

基本クラスから継承されていない列を一覧表示するにはどうすればよいですか?

分類Dev

パブリッククラスに継承されているときに、クラスがライブラリの外部に継承されないようにするにはどうすればよいですか?

分類Dev

VueJSの小道具-「クラス」属性の継承を回避するにはどうすればよいですか?

分類Dev

クラス「a」が別のクラスに継承されないようにするにはどうすればよいですか?

分類Dev

親クラスのすべての機能を継承するにはどうすればよいですか?

分類Dev

継承可能なクラス変数を作成するにはどうすればよいですか?

分類Dev

Django TextChoicesをサブクラス化して属性を追加するにはどうすればよいですか?

分類Dev

Odooの純粋なPythonクラスから継承してメソッドを変更するにはどうすればよいですか?

分類Dev

LuaBridgeを使用して同じクラスから継承された2つのクラスを登録するにはどうすればよいですか?

分類Dev

Rails button_toに複数のクラスと属性を追加するにはどうすればよいですか?

分類Dev

多重継承を使用していくつかの親クラス属性値を取得するにはどうすればよいですか?

分類Dev

別のクラスから継承するPythonクラスの初期定義に追加するにはどうすればよいですか?

分類Dev

QT Creatorで継承されたクラスのオブジェクトとしてQWidgetを宣言するにはどうすればよいですか?

分類Dev

継承を使用せずにPythonクラスに別名を付けて別の名前にするにはどうすればよいですか?

分類Dev

継承するときに基本クラスのコピーを作成しないようにするにはどうすればよいですか?C ++

分類Dev

Hibernate JPA @NamedEntityGraphで継承された属性を参照するにはどうすればよいですか?

分類Dev

継承されたクラスを無視するように「OfType()」に指示するにはどうすればよいですか?

分類Dev

クラス継承を使用して引数を渡すにはどうすればよいですか?

分類Dev

Pythonの子クラスの変更を最小限に抑えて、親__init __()から継承された属性をわずかに変更するにはどうすればよいですか?

分類Dev

MVCのHTMLヘルパーによって生成されたHTML要素にクラス属性を追加するにはどうすればよいですか?

分類Dev

すべての要素に基本クラスから1つの特定のプロパティを継承させるにはどうすればよいですか?

分類Dev

静的クラスAssignmentMapTypeに承認を追加するにはどうすればよいですか

分類Dev

(すでに存在する)クラスに別のクラスを継承させるにはどうすればよいですか?

分類Dev

AからBを継承しながら、BからクラスAを継承するにはどうすればよいですか?

分類Dev

2つのクラスからUITextFieldを継承するにはどうすればよいですか?

分類Dev

Pythonで継承されたクラスではなく、現在のクラスのインスタンスを返すようにメソッドを定義するにはどうすればよいですか?

分類Dev

メタクラスで多重継承を使用するにはどうすればよいですか?

分類Dev

継承で特定の基本クラスを取得するにはどうすればよいですか?

分類Dev

MatlabでTCPIPクラスを正しく継承するにはどうすればよいですか?

Related 関連記事

  1. 1

    基本クラスから継承されていない列を一覧表示するにはどうすればよいですか?

  2. 2

    パブリッククラスに継承されているときに、クラスがライブラリの外部に継承されないようにするにはどうすればよいですか?

  3. 3

    VueJSの小道具-「クラス」属性の継承を回避するにはどうすればよいですか?

  4. 4

    クラス「a」が別のクラスに継承されないようにするにはどうすればよいですか?

  5. 5

    親クラスのすべての機能を継承するにはどうすればよいですか?

  6. 6

    継承可能なクラス変数を作成するにはどうすればよいですか?

  7. 7

    Django TextChoicesをサブクラス化して属性を追加するにはどうすればよいですか?

  8. 8

    Odooの純粋なPythonクラスから継承してメソッドを変更するにはどうすればよいですか?

  9. 9

    LuaBridgeを使用して同じクラスから継承された2つのクラスを登録するにはどうすればよいですか?

  10. 10

    Rails button_toに複数のクラスと属性を追加するにはどうすればよいですか?

  11. 11

    多重継承を使用していくつかの親クラス属性値を取得するにはどうすればよいですか?

  12. 12

    別のクラスから継承するPythonクラスの初期定義に追加するにはどうすればよいですか?

  13. 13

    QT Creatorで継承されたクラスのオブジェクトとしてQWidgetを宣言するにはどうすればよいですか?

  14. 14

    継承を使用せずにPythonクラスに別名を付けて別の名前にするにはどうすればよいですか?

  15. 15

    継承するときに基本クラスのコピーを作成しないようにするにはどうすればよいですか?C ++

  16. 16

    Hibernate JPA @NamedEntityGraphで継承された属性を参照するにはどうすればよいですか?

  17. 17

    継承されたクラスを無視するように「OfType()」に指示するにはどうすればよいですか?

  18. 18

    クラス継承を使用して引数を渡すにはどうすればよいですか?

  19. 19

    Pythonの子クラスの変更を最小限に抑えて、親__init __()から継承された属性をわずかに変更するにはどうすればよいですか?

  20. 20

    MVCのHTMLヘルパーによって生成されたHTML要素にクラス属性を追加するにはどうすればよいですか?

  21. 21

    すべての要素に基本クラスから1つの特定のプロパティを継承させるにはどうすればよいですか?

  22. 22

    静的クラスAssignmentMapTypeに承認を追加するにはどうすればよいですか

  23. 23

    (すでに存在する)クラスに別のクラスを継承させるにはどうすればよいですか?

  24. 24

    AからBを継承しながら、BからクラスAを継承するにはどうすればよいですか?

  25. 25

    2つのクラスからUITextFieldを継承するにはどうすればよいですか?

  26. 26

    Pythonで継承されたクラスではなく、現在のクラスのインスタンスを返すようにメソッドを定義するにはどうすればよいですか?

  27. 27

    メタクラスで多重継承を使用するにはどうすればよいですか?

  28. 28

    継承で特定の基本クラスを取得するにはどうすればよいですか?

  29. 29

    MatlabでTCPIPクラスを正しく継承するにはどうすればよいですか?

ホットタグ

アーカイブ