07.01.2011, 17:47, "Steven D'Aprano" <steve+comp.lang.pyt...@pearwood.info>:
> On Fri, 07 Jan 2011 16:47:55 +0200, kost BebiX wrote:
>
>>  Well, actually the code you showed doesn't work)
>
> Actually, it does. It just prints a warning message as well. Look
> carefully:
>
>>>>>  class A(object):
>>  ..     def __init__(self):
>>  ..         self.d = {}
>>  ..     def __getattr__(self, key):
>>  ..         try:
>>  ..             return self.d[key]
>>  ..         except KeyError:
>>  ..             raise AttributeError
>>>>>  from copy import deepcopy
>>>>>  a = A()
>>>>>  deepcopy(a)
>>  Exception RuntimeError: 'maximum recursion depth exceeded while calling
>>  a Python object' in <type 'exceptions.AttributeError'> ignored
>>  Exception RuntimeError: 'maximum recursion depth exceeded while calling
>>  a Python object' in <type 'exceptions.AttributeError'> ignored
>>  0: <__main__.A object at 0xda0250>
>
> The last thing printed is the deepcopied object.
>
> I've tested the above code in Python versions 2.4 through 3.2 and the
> only one that prints that message is 2.6.
>
> --
> Steven
> --
> http://mail.python.org/mailman/listinfo/python-list

So maybe it should be fixed in 2.6? When I'll have time I'll look at copy.py in 
different python's. Maybe there's the answer)
Thanks anyway.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to