The enum.Flag type solves all this neatly.

On Mon, Jan 1, 2018 at 2:43 PM, Barry Scott <ba...@barrys-emacs.org> wrote:

> I'm guessing that what this thread is about is coming up with an API rule
> that makes
> providing a set of boolean options available to a function or class in the
> least error prone way.
>
> Its the error prone nature of integer bit masks that is behind the enum
> suggestion I assume.
>
> From the C tradition we have the integer bit mask which is error prone as
> there is no type checking that the masks belong to the option flags.
>
> Some APIs use calls with lots of keyword args that you set true or false
> and even none to mean default.
>
> The suggestion for a set of enums from this thread. You would need a class
> to represent a set of a particular enum to get type safety.
>
> List of strings or enums.
>
> You could even use a class that represents the options and set up an
> instance and pass it in. Hard to get wrong.
>
> I can see that all these styles have their place and each designer will
> pick the style they think fits the API they
> are designing.
>
> Barry
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas@python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
>



-- 
--Guido van Rossum (python.org/~guido)
_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
https://mail.python.org/mailman/listinfo/python-ideas
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to