Re: [Python-es] Sobrecargar función

Catalin Lungu lcatalin en siadv.com
Mie Feb 9 17:32:44 CET 2005


No se por que a mi no me funciona. Me da el siguiente error:
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in ?
    pp=qq.copy()
  File "C:\Programacion\Python\Modulos\ListDict.py", line 45, in copy
    return copy.copy(self)
  File "C:\Python23\lib\copy.py", line 95, in copy
    return _reconstruct(x, rv, 0)
  File "C:\Python23\lib\copy.py", line 350, in _reconstruct
    y[key] = value
  File "C:\Programacion\Python\Modulos\ListDict.py", line 9, in __setitem__
    if not n in self._orden:
AttributeError: 'ListDict' object has no attribute '_orden'


Estoy haciendo esto:
import ListDict as ld
pp=ld.ListDict()
pp[1]=1
qq=pp.copy()
aquí me da el error
tampoco me funciona con el modulo copy









----- Original Message ----- 
From: "Hernán Martínez Foffani" <hernan en orgmf.com.ar>
To: "La lista de python en castellano" <python-es en aditel.org>
Sent: Wednesday, February 09, 2005 5:21 PM
Subject: RE: [Python-es] Sobrecargar función


>>> Que habría que poner dentro de la función copy para que me devuelva
>>> una clase igual a ListDict.
>>>
>>> class ListDict(dict):
>>>     def __init__(self, *args):
>>>         self._orden = []
>>>         dict.__init__(self, *args)
>>>
>>>     *
>>>     def copy(self):
>>>         #codigo función copy
>>
>> Alcanzará con que hagas:
>>
>>  import copy
>>
>>     ...
>>     def copy(self):
>>         return copy.copy(self)
>>     ...
>>
>
> Bue... Esa es fue respuesta de programador vago ;-)
> Sin usar el modulo copy y aprovechando el "copy-constructor"
> del tipo dict:
>
>      ...
>  def copy(self):
> c = ldict(self)
> c._orden = self._orden[:]
> return c
>      ...
>
> -H.
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es 




Más información sobre la lista de distribución Python-es