[Zope] Python script: problem with session

p.t. p.training@tin.it
Thu, 13 Jun 2002 11:38:05 +0200


First of all, thanks Chris and David for the explanations: now things are 
really more understandable to me and I can devise a suitable way to work 
around the problem.

Next, where is the Python doc referenced? Library reference? Language 
reference? Something else?

Finally: does a "deepCopy()" method exist?
This would make things easier when storing objects in SESSION: I beleave 
that (genarally speaking) assigning values to SESSION should be given an 
option if it is a reference or a deep copy, because SESSION is a temporary 
repository to be used to "remember" values relevant to object attributes 
which often are used in a LIFO stack fashion with the same name 
(polimorphic approach), but independetly managed by different procedure.

         p.t.

At 01:44 PM 6/12/2002 -0400, Chris McDonough wrote:
>The copy method of a dictionary returns a "shallow" copy of the
>dictionary.  If you are changing elements of the dictionary that are
>themselves mutable, you will still have problems.  Here are the
>rules (from the Python docs):
>
>The difference between shallow and deep copying is only relevant for
>compound objects (objects that contain other objects, like lists or
>class instances):
>
>   a.. A shallow copy constructs a new compound object and then (to
>the extent possible) inserts references into it to the objects found
>in the original.
>
>   b.. A deep copy constructs a new compound object and then,
>recursively, inserts copies into it of the objects found in the
>original.
>Providing you with more information would require that we know all
>the items in the 'foo' dictionary.  If any of them is mutable, and
>you're changing it, you would see the behavior you describe.