I'm faint why this can't work

Gabriel Genellina gagsl-py at yahoo.com.ar
Fri Feb 16 03:03:14 EST 2007


En Fri, 16 Feb 2007 03:38:43 -0300, <JStoneGT at aol.com> escribió:

> Hello,
> I got this similar sample script from books:
> $ cat sampdict.py
> #!/usr/bin/python
> class  SampDict(dict):
> def __init__(self,  filename=None):
> self["name"] =  filename

Are you sure you copied it exactly as it appears? Where did you find it?

> But when I run it I got the errors:
>
>>>> from sampdict import SampDict
>>>>  SampDict("/etc/passwd")
> Traceback (most recent  call last):
> File "<stdin>", line 1, in ?
> File  "sampdict.py", line 4, in __init__
> self["name"] = filename
> AttributeError: SampDict instance has no attribute '__setitem__'

Usually, when you inherit from another class, you have to call the base  
class __init__ from inside your own. That is, put this line:
	dict.__init__(self)
as the firt statement on your __init__

-- 
Gabriel Genellina




More information about the Python-list mailing list