On Sat, Sep 28, 2019 at 2:26 PM Ricky Teachey <ri...@teachey.org> wrote:

>
> But it would silently do nothing if there was no class decorator to look
>> at it.
>>
>
> This doesn't seem like such a big deal to me. It would simply be the way
> slots works.
>

I was thinking it's currently an error. And you chose a name
(__slot_conflics__) suggesting that there still was a problem. But yeah,
maybe other than that it's no big deal.


> However if we did `__slots__ = "__auto__"` then we might finagle it so
>> that the initializers could be preserved:
>>
>> class C:
>>     __slots__ = "__auto__"  # or MRAB's suggested __slots__ = ...
>>    x: float = 0.0
>>    y: float = 0.0
>>
>
> I do like this idea a lot.
>
> Saving, or preserving, the initialized values somewhere is mainly what I
> was driving at with the so called __slots_conflicts__ idea. Perhaps instead
> the slots descriptor object could store the value? Something like:
>
> class C:
>     __slots__ = ...
>    x: float = 0.0
>    y: float = 0.0
>
> assert C.x.__value__ == 0.0
> assert C.y.__value__ == 0.0
>

Why not -- they have to go somewhere. :-/


> If that becomes the way this is solved, should slots be made to also
> accept a dict to create starting values?
>
> class C:
>     __slots__ = dict(x = 0.0, y = 0.0)
>
> assert C.x.__value__ == 0.0
> assert C.y.__value__ == 0.0
>
>>
But what would be the use case for that? When would you ever prefer to
write this rather than the first version? I guess if the slots are computed
-- but who uses computed slots nowadays?

-- 
--Guido van Rossum (python.org/~guido)
*Pronouns: he/him **(why is my pronoun here?)*
<http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/>
_______________________________________________
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/E2K5P3UOLA6VV43JSZZ6VINATY242G5P/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to