Howdy -- I have a class that has an attribute that is a dictionary that contains an object that has a kword argument that is a lambda. Confused yet? Simplified example:
import copy class Foo: def __init__(self, fn=None): self.fn = fn class Bar: d = {'foobar': Foo(fn=lambda x: x*x)} def cp(self): self.xerox = copy.deepcopy(self.d) When I execute: b = Bar() b.cp() Using Python version: Python 2.3 (#1, Sep 13 2003, 00:49:11) [GCC 3.3 20030304 (Apple Computer, Inc. build 1495)] on darwin I get: Traceback (most recent call last): File "<stdin>", line 1, in ? File "<stdin>", line 5, in cp File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/copy.py", line 179, in deepcopy y = copier(x, memo) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/copy.py", line 270, in _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/copy.py", line 179, in deepcopy y = copier(x, memo) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/copy.py", line 307, in _deepcopy_inst state = deepcopy(state, memo) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/copy.py", line 179, in deepcopy y = copier(x, memo) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/copy.py", line 270, in _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/copy.py", line 206, in deepcopy y = _reconstruct(x, rv, 1, memo) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/copy.py", line 338, in _reconstruct y = callable(*args) File "/System/Library/Frameworks/Python.framework/Versions/2.3/lib/ python2.3/copy_reg.py", line 92, in __newobj__ return cls.__new__(cls, *args) TypeError: function() takes at least 2 arguments (0 given) I've googled for deepcopy and lambda and found somebody else asking the same question on a LUG somewhere, but they gave no advice and nobody else seems to have run into this. Any ideas on what the problem is/how to get around it? Thanks! -jag -- http://mail.python.org/mailman/listinfo/python-list