[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:24:53 EDT 2017

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)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170519/3fedd0b3/attachment.html>

More information about the Python-ideas mailing list