On Tue, Mar 16, 2021 at 11:59 AM Eric V. Smith <e...@trueblade.com> wrote:

> On 3/16/2021 10:06 AM, Ricky Teachey wrote:
>
> ...
> I think I prefer it, too. But what about using something like
> `mark=dataclasses.KW_ONLY` rather than `kw_only=True` (in the field
> constructor)? So it isn't an on/off switch and as to leave open the door
> for positional arguments? Is that door to be totally closed? I'm not here
> to argue in favor of it necessarily, just asking whether we really want to
> close the door more tightly against it than we have to.
>
>
> I don't see how my proposal prohibits a future use of positional
> arguments, much as '/' was added after '*' for positional arguments for
> functions.
>
> Eric
>

Here I am only trying to help by pointing out a few things that might be
worth considering. However I am FULLY willing to be told "Rick: we've been
designing language features a long time and, trust me, none of this a big
deal." :)

It doesn't prohibit it, but choosing `kw_only` as the argument name (in
both dataclasses.dataclass and dataclasses.field) semantically limits it to
only being used as an on/off switch for a kw-only setting. Later, if it
became desirable to add positional only, you'd need to add another separate
on/off setting for it (say, `posit_only`) and then you'd end up in
situations where the flag combos could be in conflict, and you have to
check for that conflict:

kw_only=True, posit_only=True

The above would be an invalid combination. So it doesn't prohibit it but it
makes it a bit harder to add it later.

And is there another possible "setting".... possibly a bit exotic, maybe
something that would end up being specific to dataclasses... that would
also exclude OR require one or both of either/or kw_only and posit_only...?
I am not sure, but maybe there is. And in that case you'd end up with a
third on/off switch, and some other set of possibly ponderous checking:

kw_only=True, exotic_setting=True
posit_only=True, exotic_setting=True

---
Ricky.

"I've never met a Kentucky man who wasn't either thinking about going home
or actually going home." - Happy Chandler
_______________________________________________
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/7TI6GS6BFYA3TYAZHOVMZ7WSOBZROE57/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to