Why not just:

    with build_choices('Restaurant') as restaurant_choices :
        ...

    print(restaurant_choices)

On Sun, Oct 13, 2019, 2:49 PM Steve Jorgensen <ste...@stevej.name> wrote:

> Here's a more fleshed-out example of the kind of usage I have in mind.
> Note that this does not require `with` to have any affect on variable
> scope.  The object returned from the context manager's __enter__ method is
> all the context that is needed or wanted for this pattern.
>
>     restaurant_choices = with build_choices('Restaurant') as cb:
>         # Get of nonexistent attr auto-generates matching entry.
>         cb.BURGER_KING
>         cb.FIVE_GUYS
>         # Returned value is a ChoiceItem that implements __mod__ to return
> a
>         # new ChoiceItem instance w/ substituted label.
>         cb.MCDONALDS %= "McDonald's"
>
>     print(restaurant_choices)
>     # RestaurantChoices(
>     #  (
>     #   ('BURGER_KING', 'Burger King'),
>     #   ('FIVE_GUYS', 'Five Guys'),
>     #   ('MCDONALDS', "McDonald's")))
>
>     print(RestaurantChoices.BURGER_KING)
>     # Prints 'BURGER_KING'
>
>     print(RestaurantChoices.value_labels['FIVE_GUYS'])
>     # Prints 'Five Guys'
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/ZPZ47KHN7JWWCWF7UH4P2MYLK6XTRI6O/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/DVQDYYYJL2GELK3WA7LNRRIIG6Y52GAF/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to