[Python-Dev] ConfigParser shootout, preliminary entry

Josiah Carlson jcarlson at uci.edu
Tue Oct 19 00:01:23 CEST 2004


>   This breaks down for the perfectly reasonable case of:
> 
>     hostname = Value("foo")
> 
>     class First(Container):
>         port = Value(64)
>         hostname = hostname
>         username = Value("zoop")
> 
>     class Second(Container):
>         username = Value("pooz")
>         hostname = hostname
>         port = Value(24)
> 
>   ie, it breaks down as soon as you try to re-use anything, which is
> quite surprising to the unsuspecting user, and pretty unfortunate even
> once you do understand why.


So you use...

hostname = "foo"

class First(Container):
    port = Value(36)
    hostname = Value(hostname)
    username = Value("zoop")

...

As long as the documentation describes the proper semantics if one cares
about orderings (create new TypedAttrribute instance for every value),
when anyone asks, a quick "read the documentation page" would be
sufficient.

One could also explain why the hoops are to be jumped through in the
first place (dict non-ordering during class instantiation).



 - Josiah



More information about the Python-Dev mailing list