<div dir="ltr">The enum.Flag type solves all this neatly.<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jan 1, 2018 at 2:43 PM, Barry Scott <span dir="ltr"><<a href="mailto:barry@barrys-emacs.org" target="_blank">barry@barrys-emacs.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I'm guessing that what this thread is about is coming up with an API rule that makes<br>
providing a set of boolean options available to a function or class in the least error prone way.<br>
<br>
Its the error prone nature of integer bit masks that is behind the enum suggestion I assume.<br>
<br>
>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.<br>
<br>
Some APIs use calls with lots of keyword args that you set true or false and even none to mean default.<br>
<br>
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.<br>
<br>
List of strings or enums.<br>
<br>
You could even use a class that represents the options and set up an instance and pass it in. Hard to get wrong.<br>
<br>
I can see that all these styles have their place and each designer will pick the style they think fits the API they<br>
are designing.<br>
<span class="HOEnZb"><font color="#888888"><br>
Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
______________________________<wbr>_________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/<wbr>mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/<wbr>codeofconduct/</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)</div>
</div>