Problème de copie d'un objet psycopg2 via deepcopy
Bonjour à tous
J'ai eu récemment un souci en voulant copier un objet perso via copy.deepcopy lorsque cet objet contenait lui-même une connexion vers une bdd Postgres via psycopg2. La connexion est perdue dans l'objet copié
Exemple minimaliste
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #!/usr/bin/env python
# -*- coding: utf-8 -*-
import psycopg2
import copy
class cToto(object):
def __init__(self):
print "init"
self.bdd=psycopg2.connect(
host="localhost",
dbname="ma_bdd",
user="postgres",
)
def __str__(self):
return "%s" % repr(self)
def copy(self):
other=copy.deepcopy(self)
#other.bdd=self.bdd
return other
# cToto()
a=cToto()
print a, type(a), a.bdd
b=a.copy()
print b, type(b), b.bdd |
b est un objet copié à partir de a. Ben lorsque j'affiche b.bdd, j'ai une erreur de segmentation.
En revanche, si je décommente la ligne qui copie la connexion bdd, je n'ai plus d'erreur.
Je voulais savoir si quelqu'un avait déjà vu un truc similaire et s'il avait une explication.
Merci
PS: je suis sous Python v2.6.6 sur une Debian Squeeze