FileCookieJar has not attribute "_self_load"

Gabriel Genellina gagsl-py2 at yahoo.com.ar
Sat Jan 17 12:33:48 CET 2009


En Sat, 17 Jan 2009 08:16:14 -0200, Dragos <dragosmocrii at gmail.com>  
escribió:

> On Jan 17, 11:48 am, "Gabriel Genellina" <gagsl-... at yahoo.com.ar>
> wrote:
>> En Fri, 16 Jan 2009 17:19:47 -0200, escribiste en el grupo
>> gmane.comp.python.general
>>
>> > I am trying to make a testing script to load/save cookies to a file
>> > with FileCookieJar, but it results in this error: FileCookieJar has
>> > not attribute "_self_load"
>>
>> FileCookieJar is an abstract class, although it isn't clear at all from
>> the documentation. (You may want to file a documentation bug  
>> athttp://bugs.python.org)
>> You must instantiate a specific subclass (like MozillaCookieJar), which
>> determines the actual file format used.
>
> Oh, thank you so much.
> Using MozillaCookieJar works just fine.
>
> But could you please explain what an abstract class is (or where i can
> find documentation for this term). Thanks!

Try http://en.wikipedia.org/wiki/Abstract_class
In short, it's an incomplete class, with "holes" that subclasses must fill  
in order to get a complete, working class (a "concrete" class, as opposed  
to the "abstract" base).

If you look at FileCookieJar, its load() method calls self._really_load  
but no such method exists in that class nor its ancestors (this explains  
the error you got). Subclasses of FileCookieJar *must* implement  
_really_load to be usable.

It's customary to define the method anyway, and raise NotImplementedError;  
this serves two purposes:
- document the expected interfase
- error messages are more meaningful
(FileCookieJar.save() is implemented this way; _really_load() should be  
the same)

-- 
Gabriel Genellina




More information about the Python-list mailing list