RE: [Python-es] Sobrecargar función
Hernán Martínez Foffani
hernan en orgmf.com.ar
Mie Feb 9 17:51:57 CET 2005
> No se por que a mi no me funciona. Me da el siguiente error:
> ...
Pues no se por qué...
¿Has usado ListDict como constructor, no? (en
mi email usé ldict porque ese el nombre que le puse
a la clase)
¿Tampoco habrás definido un método __copy__()?
>>> class ListDict(dict):
def __init__(self, *args):
self._orden=[]
dict.__init__(self, *args)
def copy(self):
c=ListDict(self)
c._orden = self._orden[:]
return c
def __setitem__(self, n, v):
if not n in self._orden:
self._orden.append(n)
dict.__setitem__(self, n, v)
def __delitem__(self, k):
dict.__delitem__(self, k)
self._orden.remove(k)
>>> l =ListDict()
>>> l["a"]=1
>>> l
{'a': 1}
>>> type(l)
<class '__main__.ListDict'>
>>> ll = l.copy()
>>> type(ll)
<class '__main__.ListDict'>
>>> ll == l
True
>>> ll is l
False
>>> l._orden
['a']
>>> ll._orden
['a']
>>>
-H.
Más información sobre la lista de distribución Python-es