On Wed, Aug 5, 2020 at 1:54 PM David Mertz <me...@gnosis.cx> wrote:

> On Wed, Aug 5, 2020 at 1:27 PM Ricky Teachey <ri...@teachey.org> wrote:
>
>> On Wed, Aug 5, 2020 at 11:41 AM Marco Sulla <marco.sulla.pyt...@gmail.com>
>> wrote:
>>
>>> On Wed, 5 Aug 2020 at 15:53, Ricky Teachey <ri...@teachey.org> wrote:
>>> from mypython import *
>>> @const a = 5
>>>
>>
>>  I'm probably dim but I have no idea what that is supposed to mean or do.
>> Is this just calling const(a=5)...? what is the point of that?
>>
>
> I'm not advocating it, and I'm not the one that came up with it. But my
> impression is that it is intended to mean:
>
> a = const('a', 5)
>
> This doesn't seem completely pointless:
>
> >>> class const():
> ...     def __init__(self, name, val):
> ...         self.name = name
> ...         self.val = val
> ...     def about(self):
> ...         print(self.name, '=', self.val)
> ...
> >>> a = const('a', 5)
> >>> a.val
> 5
> >>> a.about()
> a = 5
>
> There might be a way to subclass, e.g. int, so that you don't need to use
> `a.val` to get the value.  It wasn't obvious to me how to do it in pure
> Python with 3 minutes thought.
>

Ah, I get it.

And btw this works:

>>> class const(int):
...     def __new__(cls, name, val):
...         obj = super().__new__(cls, val)
...         obj.name = name
...         return obj
...     def about(self):
...         print(self.name, '=', self)
...
>>> a = const('a', 5)
>>> a
5
>>> a.about()
a = 5

---
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/IDIBWXT2OCCLJUGLEQZEAX6SAZLF2SF2/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to