Sentinel values for special cases

Gabriel Genellina gagsl-py at yahoo.com.ar
Fri Oct 27 22:00:52 EDT 2006


At Friday 27/10/2006 21:09, Ben Finney wrote:

> > > >    GLOBAL = object()
> > > >
> > > >    def insert_ids(ids=GLOBAL):
> > > >        if ids is GLOBAL:
> > > >            ids = get_global_ids()
> > >
> > >The one disadvantage of this approach is that it complicates
> > >pickling if/when you store the stentinel in an instance.  There are
> > >ways of working around that, but none are pleasant.
> >
> > But why should you store the sentinel in an instance? It's only
> > purpose is to detect a special case in the parameter, when None is
> > not appropiate.
>
>You might be storing values that will later become parameters to the
>function.
>
>     ids_to_be_processed_later = {
>         'chin': [14, 7, 9],
>         'bin':  foo.GLOBAL,
>         'fin':  [74, 98, 12],
>     }
>     serialise_stuff()

Well... just don't do that! :)
Instead of a dict, use another class instance with a class attribute 
(like on my earlier post).


-- 
Gabriel Genellina
Softlab SRL 

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis! 
¡Abrí tu cuenta ya! - http://correo.yahoo.com.ar



More information about the Python-list mailing list