scared about refrences...
SpreadTooThin
bjobrien62 at gmail.com
Tue Oct 31 12:16:56 EST 2006
J. Clifford Dyer wrote:
> SpreadTooThin wrote:
> > J. Clifford Dyer wrote:
> >> SpreadTooThin wrote:
> >>> Steven D'Aprano wrote:
> >>>> On Mon, 30 Oct 2006 13:10:47 -0800, SpreadTooThin wrote:
> >>>>
> >>>>
> >>> I seems that some of the objects in the list don't get along well with
> >>> deep copy..
> >>> See my second example post that used deepcopy... When run blows up...
> >>>
> >> When it blows up, is there a lot of shrapnel, or just smoke and fire?
> >> Is the shrapnel mostly metal, or is it plastic and glass?
> >>
> >> In short, if we don't know what's happening, we can't help.
> >> * Did the program spit out a bunch of text you didn't understand?
> >> If so, show us the text. That text may be incomprehensible at first,
> >> but it contains crucial clues.
> >>
> >> * Did it close your python window without a word?
> >> Tell us.
> >>
> >> * Did your computer freeze up?
> >> Tell us.
> >>
> >> If you don't tell us what went wrong *exactly*, you won't get a
> >> satisfactory answer.
> >>
> >
> > I would assume that looking at the code you should be able to tell..
> > Silly me.. Here.. is the log.. If I were helping.. I would have cut
> > and pasted the code myself and ran it.. instead of trying to interpret
> > this...
>
> I know it seems unnecessary to post the traceback when I could get the
> same thing by running your code on my machine, but it's actually useful,
> for a couple reasons: First, when I run the code, I might not get an
> error, or if I do, it might not be the same error you were getting, and
> then we'd be on a wild goose chase. This could be because your python
> installation is goofy, or because you copied in your code incorrectly.
> Shit happens, and I'd rather not even start down one of those blind
> alleys. Third, it provides a useful frame for how to look at your
> code. While a traceback might look like a big mess at first, it's
> actually pretty easy to skim through once you get used to it, and it
> tells me where to focus my attention in your code.
>
> >
> > array('H', [1, 2, 3]) ['a', 'b', 'c']
> > Traceback (most recent call last):
> > File
> > "/Volumes/Data/Users/bjobrien/Applications/Komodo.app/Contents/SharedSupport/dbgp/pythonlib/dbgp/client.py",
> > line 1806, in runMain
> > self.dbg.runfile(debug_args[0], debug_args)
> > File
> > "/Volumes/Data/Users/bjobrien/Applications/Komodo.app/Contents/SharedSupport/dbgp/pythonlib/dbgp/client.py",
> > line 1529, in runfile
> > h_execfile(file, args, module=main, tracer=self)
> > File
> > "/Volumes/Data/Users/bjobrien/Applications/Komodo.app/Contents/SharedSupport/dbgp/pythonlib/dbgp/client.py",
> > line 590, in __init__
> > execfile(file, globals, locals)
> > File "/Volumes/Data/Users/bjobrien/Desktop/pythonDICOM/Text-1.py",
> > line 20, in __main__
> > test(t)
> > File "/Volumes/Data/Users/bjobrien/Desktop/pythonDICOM/Text-1.py",
> > line 16, in test
> > t = copy.deepcopy(x)
> > File
> > "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py",
> > line 174, in deepcopy
> > y = copier(x, memo)
> > File
> > "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py",
> > line 305, in _deepcopy_inst
> > state = deepcopy(state, memo)
> > File
> > "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py",
> > line 174, in deepcopy
> > y = copier(x, memo)
> > File
> > "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py",
> > line 268, in _deepcopy_dict
> > y[deepcopy(key, memo)] = deepcopy(value, memo)
> > File
> > "/Library/Frameworks/Python.framework/Versions/2.4/lib/python2.4/copy.py",
> > line 185, in deepcopy
> > y = copier(x, memo)
> > TypeError: __deepcopy__() takes no arguments (1 given)
> >
> >
> >
> >> Cheers,
> >> Cliff
> >
>
> Thanks, that's very helpful. Playing with your code a bit, I narrowed
> the problem down to the array.array() structure. Looking at
> help(array), there's a method defined called __deepcopy__, which, it
> seems, takes no arguments, while deepcopy is passing it one argument.
> Looks like a bug in the array module to me. Maybe others with more
> experience using array will have some deeper insight.
>
>
I don't understand why python would insist that everything must be a
refrence...
It is of course helpful sometime but other times its not... and now
I'm sorta out
of luck...
I don't know how to make this structure immutable... Pickle it? Seems
very
inefficient to me...
Every time I pass a variable now I will worry that it will be changed
by the function...
I haven't worried about things like this since the very early days of
BASIC....
I don't know.. maybe I have more to learn.
> Cheers,
> Cliff
More information about the Python-list
mailing list