Le partage de variables globales entre les classes en Python

Je suis relativement nouveau à la pensée de python en termes de programmation orientée objet, et ça avance assez lentement pour moi.

Est-il possible de passer des variables globales entre les classes avec de multiples fonctions? J'ai beaucoup lu ici et dans d'autres sources, mais je suis encore un peu confus.

Mon but ultime est de définir une variable à l'échelle mondiale, de lui attribuer une valeur en fonction d'une classe, puis l'UTILISER dans une autre classe de fonction. Est-ce possible? Je suis en train de construire un pythonaddin pour ArcMap, ce qui nécessite une classe pour chaque bouton. Je veux avoir un bouton pour assigner une valeur à une variable, et ensuite utiliser cette variable dans une autre classe dans le script.

(Avant que je la flak, je sais que c'est relativement mauvaise forme à utiliser des variables globales, en premier lieu, je suis en train d'apprendre)

Par exemple, comme un exemple simplifié:

x = []

class A():

    def func_1(self): 
        #populate the x variable
        global x 
        x = 1


class B():

    def func_2(self):
        global x
        #do stuff with x

Est-ce acceptable (même si pas pythonic)?

Éviter globals quand vous le pouvez.
Vous ne devez utiliser le mot clé global si vous allez modifier la variable en question.

OriginalL'auteur user22861 | 2013-11-24