Hola, tengo una clase C, a cuyos objetos puedo, en principio, hacer copias con copy.deepcopy(). Sin embargo, cuando a la clase C le agrego logging en el __init__ [1], ya no funciona [2]. ?No me queda mas remedio que copiar el objeto "manualmente"? ?O existe alguna forma limpia de evitar este problema?
Gracias por adelantado. Un saludo, y perdon por la falta de tildes. Jose [1] def __init__(self): self.log = logging.getLogger() logStream = logging.StreamHandler() .... self.log.addHandler(logStream) [2] File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy y = _reconstruct(x, rv, 1, memo) File "/usr/lib64/python2.7/copy.py", line 334, in _reconstruct state = deepcopy(state, memo) File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy y = copier(x, memo) File "/usr/lib64/python2.7/copy.py", line 257, in _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy y = _reconstruct(x, rv, 1, memo) File "/usr/lib64/python2.7/copy.py", line 334, in _reconstruct state = deepcopy(state, memo) File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy y = copier(x, memo) File "/usr/lib64/python2.7/copy.py", line 257, in _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy y = copier(x, memo) File "/usr/lib64/python2.7/copy.py", line 230, in _deepcopy_list y.append(deepcopy(a, memo)) File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy y = _reconstruct(x, rv, 1, memo) File "/usr/lib64/python2.7/copy.py", line 334, in _reconstruct state = deepcopy(state, memo) File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy y = copier(x, memo) File "/usr/lib64/python2.7/copy.py", line 257, in _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy y = _reconstruct(x, rv, 1, memo) File "/usr/lib64/python2.7/copy.py", line 334, in _reconstruct state = deepcopy(state, memo) File "/usr/lib64/python2.7/copy.py", line 163, in deepcopy y = copier(x, memo) File "/usr/lib64/python2.7/copy.py", line 257, in _deepcopy_dict y[deepcopy(key, memo)] = deepcopy(value, memo) File "/usr/lib64/python2.7/copy.py", line 190, in deepcopy y = _reconstruct(x, rv, 1, memo) File "/usr/lib64/python2.7/copy.py", line 329, in _reconstruct y = callable(*args) File "/usr/lib64/python2.7/copy_reg.py", line 93, in __newobj__ return cls.__new__(cls, *args) TypeError: object.__new__(thread.lock) is not safe, use thread.lock.__new__() _______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es