Variable statique de l'héritage en Python

Je suis en train d'écrire des scripts Python pour Blender pour un projet, mais je suis assez nouveau à la langue. Quelque chose que je suis confus au sujet de l'utilisation de variables statiques. Voici le morceau de code je suis actuellement en train de travailler sur:

class panelToggle(bpy.types.Operator):
    active = False

    def invoke(self, context, event):
        self.active = not self.active
        return{'FINISHED'}

class OBJECT_OT_openConstraintPanel(panelToggle):
    bl_label = "openConstraintPanel"
    bl_idname = "openConstraintPanel"

L'idée est que la deuxième classe doit hériter de la active variable et la invoquer méthode à partir de la première, de sorte que l'appel OBJECT_OT_openConstraintPanel.invoke() modifie OBJECT_OT_openConstraintPanel.active. À l'aide de auto comme je l'ai fait ci-dessus ne fonctionne pas cependant, et ni ne l'aide panelToggle à la place. Aucune idée de comment je aller à ce sujet?

Bon, il semble que je peux utiliser l'auto.__la classe__.active ou de type(auto).active pour laisser la méthode hériter correctement. Merci!
Pourquoi êtes-vous à l'aide de variables statiques en premier lieu? Cela ne semble pas raisonnable. Est-ce active attribut de certains genre de, partagés entre tous les PanelToggle instances? Si oui, pourquoi n'est-il pas en réalité mondiale? Ou pourquoi n'est-il pas dans certains plus global de l'objet partagé?
Je veux que chaque panelToggle sous-classe d'avoir son propre "active" de la variable qui peut être consulté sans la création d'une instance. Si je comprends l'utilisation de la "mondialisation" mot-clé correctement, je dois insérer un 'global active" ligne " invoke(..)' avant tout à l'aide d'active comme une variable locale. En faisant cela donne un message d'erreur indiquant que le nom global "active" n'est pas défini. Je ne suis pas sûr de comprendre quel est le problème avec mon approche, cependant.
Pourquoi au niveau de la classe? Clairement, vous voulez que chaque sous-classe d'avoir une variable. Pourquoi est-il au niveau de la classe? C'est ce qui fait que peu de sens. Pourquoi n'est-ce pas un ordinaire variable d'instance?

OriginalL'auteur gibberish | 2010-08-13