références cycliques, weakref

références cycliques, weakref - Python - Programmation

Marsh Posté le 12-10-2003 à 12:46:44    

j'ai un problème : j'ai une class Banque et une classe privée Banque.__Compte. je veux empêcher l'appropriation d'un Banque.__Compte par autre chose qu'une Banque. pour cela j'ai une fabrique qui retourne un weakref.proxy(nouveau_compte). Mais ça merde, tantôt mes destructeurs sont appelés mais ça me jète des Exception dans tous les sens, tantot je me retrouve avec rien de détruit.
 
le code est un peu long, alors je propose le fichier
http://dejean.benoit.free.fr/code/Compte.py
 
merci du coup d'oeil


Message édité par Taz le 12-10-2003 à 17:00:01
Reply

Marsh Posté le 12-10-2003 à 12:46:44   

Reply

Marsh Posté le 13-10-2003 à 12:05:38    

lorill :o

Reply

Marsh Posté le 13-10-2003 à 12:21:44    

[:cupra]
 
jamais touché aux weekref... t'es obligé de les utiliser ?

Reply

Marsh Posté le 13-10-2003 à 12:27:09    

ben je vois pas comment réaliser mon problème : à savoir interdire l'appropriation d'un Banque.__Compte par un élément extérieur
 
regarde le code
 
 
si je fais
 
taz = creditHFR.creerCompte("Taz" )
 
sans weakref, taz est propriétaire du compte. si la banque est détruite, le compte existera toujours puisqu'il sera encore référencé. d'ou mon problème. et y a toujours des ref cycliques
 
 
avec un langage par valeur, on interdirait la création publique, avec un langage par référence, il faut interdire le référencement-propriétaire. avec les weakref, seule la banque possède les compte

Reply

Marsh Posté le 13-10-2003 à 12:57:14    

Taz a écrit :


sans weakref, taz est propriétaire du compte. si la banque est détruite, le compte existera toujours puisqu'il sera encore référencé. d'ou mon problème.


ah je vois, je croyais que tu voulais juste interdire la création en dehors de Banque.
 
ben je sais pas, alors :o

Reply

Marsh Posté le 13-10-2003 à 13:11:02    

ben la création je l'ai interdit en rendant privée Compte
 
cherche :o
 
aide moi au moi à trouver pourquoi j'ai des références cycliques alors que les weakef devrait fonctionner ... :cry:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed