[Python-ideas] JavaScript-Style Object Creation in Python (using a constructor function instead of a class to create objects)

Guido van Rossum guido at python.org
Fri May 19 14:36:08 EDT 2017


So it is only called by __init__ and not by __setattr__?

On Fri, May 19, 2017 at 11:32 AM, Stephan Houben <stephanh42 at gmail.com>
wrote:

> Let me quote the attrs docs:
>
> ""
> convert (callable) – callable() that is called by attrs-generated __init__
> methods to convert attribute’s value to the desired format. It is given the
> passed-in value, and the returned value will be used as the new value of
> the attribute. The value is converted before being passed to the validator,
> if any.
> """
>
> So the signature is essentially:
>
> self.myattrib = callable (myattrib)
>
> Stephan
>
> Op 19 mei 2017 20:25 schreef "Guido van Rossum" <guido at python.org>:
>
> For people who don't want to click on links:
>>
>> 1. Allow hash and equality to be based on object identity, rather than
>> structural identity,
>>    this is very important if one wants to store un-hashable objects in
>> the instance.
>>   (In my case: mostly dict's and numpy arrays).
>>
>> 2. Not subclassed from tuple. I have been bitten by this subclassing
>> when trying to set up
>>    singledispatch on sequences and also on my classes.
>>
>> 3. Easily allow to specify default values. With namedtuple this
>> requires overriding __new__.
>>
>> 4. Easily allow to specify a conversion function. For example I have
>> some code like below:
>>     note that I can store a numpy array while keeping hashability and
>> I can make it convert
>>    to a numpy array in the constructor.
>>
>>  @attr.s(cmp=False, hash=False)
>>  class SvgTransform(SvgPicture):
>>      child = attr.ib()
>>      matrix = attr.ib(convert=numpy.asarray)
>>
>>
>> I have one question about (4) -- how and when is the conversion function used, and what is its signature?
>>
>>
>> On Fri, May 19, 2017 at 5:42 AM, Eric V. Smith <eric at trueblade.com>
>> wrote:
>>
>>> Could you point me to this 4-point list of Stephan's? I couldn't find
>>>> anything in the archive that you might be referring to.
>>>>
>>>
>>> Never mind, I found them here:
>>> https://mail.python.org/pipermail/python-ideas/2017-May/045679.html
>>>
>>> Eric.
>>>
>>>
>>> _______________________________________________
>>> Python-ideas mailing list
>>> Python-ideas at 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 at python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
>>
>>


-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170519/93277317/attachment.html>


More information about the Python-ideas mailing list