homepage

This issue tracker has been migrated to GitHub , and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Kassym.Dorsel
Recipients Kassym.Dorsel, alexandre.vassalotti
Date 2013年10月23日.13:49:42
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1382536183.12.0.651276140754.issue19364@psf.upfronthosting.co.za>
In-reply-to
Content
When __getattr__ is implemented without also implementing __copy__ and __deepcopy__ trying to (deep)copy the class fails.
>>> import copy
>>> class foo():
... def __getattr__(self, attr):
... return None
...
>>> f = foo()
>>> copy(f)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable
The copy module checks if a class has implemented __copy__ using hasattr:
if hasattr(x, '__copy__'):
 ...
An easy fix would be to use:
if getattr(x, '__copy__', None):
 ...
In Python 3 this change has already been made.
History
Date User Action Args
2013年10月23日 13:49:43Kassym.Dorselsetrecipients: + Kassym.Dorsel, alexandre.vassalotti
2013年10月23日 13:49:43Kassym.Dorselsetmessageid: <1382536183.12.0.651276140754.issue19364@psf.upfronthosting.co.za>
2013年10月23日 13:49:43Kassym.Dorsellinkissue19364 messages
2013年10月23日 13:49:42Kassym.Dorselcreate

AltStyle によって変換されたページ (->オリジナル) /