Se connecter

Informatique

Programmation

Sujet : Context manager en python : comment faire ça svp ?
1
Genetique2fdp13
Niveau 9
05 juin 2020 à 12:45:26

J'aimerais pouvoir faire ça :

g = Graph()
with g:
  c = Variable(30.0)
  assert c.graph is g

Alors qu'actuellement je sais juste faire ça :

g = Graph()
with g:
  c = Variable(30.0)
  g.add(c)
  print(g.variables)

(et là ça m'affiche la variable c)

Je suis obligé d'implémenter une méthode "add" dans ma classe Graph, en utilisant les méthodes de context manager usuelles de python (__enter__ et __exit__). Quelqu'un sait-il comment je pourrai m'en affranchir pour "lier" Variable et Graph comme dans mon premier snippet ?

Genetique2fdp13
Niveau 9
05 juin 2020 à 14:17:03

Edit: la solution que j'ai trouvé est d'utiliser le graphe comme une variable globale, je sais pas si on peut faire plus propre.

1
Sujet : Context manager en python : comment faire ça svp ?
   Retour haut de page
Consulter la version web de cette page