Accéder à une variable du programme principal depuis une classe

tuxpy -  
 dibot -
Bonjour,
c'est un problème assez courant mais dont il demeure difficile de trouver la solution:
j'ai une classe héritée de Thread (module threading) qui est créée depuis le programme principal.
Depuis cette classe il faut pouvoir accéder à une variable déclarée aussi dans le programme principal.
x = 3
class Obj(Thread):
 def __init__(self):
  Thread.__init__(self)
 def run(self):
  print(x)

obj = Obj()
obj.start()
obj.join()

Ce code fonctionne dans la console mais un code équivalent, pas dans mon programme ("UnboundLocalError: local variable 'i' referenced before assignment")

Pourriez-vous m'aider?
Merci.
A voir également:

1 réponse

dibot
 
Que ta classe hérite de thread ou n'importe quoi d'autre ne change rien, ce serait une simple fonction, le résultat serait identique.

Ce qu'il faut déterminer, c'est où réellement ta variable est déclarée ? Même module ? Et ce qu'elle représente, contient, valeur partagée entre objets, modules ?
0