2016-11-30 8:11 GMT-08:00 Guido van Rossum <gu...@python.org>: > On Wed, Nov 30, 2016 at 7:09 AM, Ethan Furman <et...@stoneleaf.us> wrote: > >> On 11/30/2016 02:32 AM, Jelte Fennema wrote: >> >> It would be nice to have a supported way to add defaults to namedtuple, >>> so the slightly hacky solution here does not have to be used: >>> http://stackoverflow.com/a/18348004/2570866 >>> >> >> Actually, the solution right below it is better [1]: >> >> --> from collections import namedtuple >> --> class Node(namedtuple('Node', ['value', 'left', 'right'])): >> --> __slots__ = () >> --> def __new__(cls, value, left=None, right=None): >> --> return super(Node, cls).__new__(cls, value, left, right) >> >> But even more readable than that is using the NamedTuple class from my >> aenum [3] library (and on SO as [3]): >> >> --> from aenum import NamedTuple >> --> class Node(NamedTuple): >> --> val = 0 >> --> left = 1, 'previous Node', None >> --> right = 2, 'next Node', None >> >> shamelessly-plugging-my-own-solutions'ly yrs, >> > > Ditto: with PEP 526 and the latest typing.py (in 3.6) you will be able to > do this: > > class Employee(NamedTuple): > name: str > id: int > > We should make it so that the initial value in the class is used as the > default value, too. (Sorry, this syntax still has no room for a docstring > per attribute.) > > Implemented this in https://github.com/python/typing/pull/338
> -- > --Guido van Rossum (python.org/~guido <http://python.org/%7Eguido>) > > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/