Programme chap4_classe_1708_.py


# coding: latin-1
import copy

class Objet1 :
    def __init__ (self, i) : self.i = i
    def __str__ (self) :
        return "o1 " + str (self.i) + " : " + str (self.o2.i)

class Objet2 :
    def __init__ (self, i, o) :
        self.i  = i
        self.o1 = o
        o.o2    = self
    def __str__ (self) :
        return "o2 " + str (self.i) + " : " + str (self.o1.i)

    def __deepcopy__ (self,memo) : return Objet2 (self.i, self.o1)

o1 = Objet1 (1)
o2 = Objet2 (2, o1)
print o1  # affiche o1 1 : 2
print o2  # affiche o2 2 : 1

o3   = copy.deepcopy (o2)
o3.i = 4
print o1  # affiche o1 1 : 4    --> on voudrait 2
print o2  # affiche o2 2 : 1
print o3  # affiche o2 4 : 1

créé avec py2html version:0.62