[Python-ideas] namedtuple fields with default values
Antoine Pitrou
solipsis at pitrou.net
Fri Jul 17 17:33:57 CEST 2015
On Fri, 17 Jul 2015 10:44:15 -0400
Barry Warsaw <barry at python.org> wrote:
>
> I don't know about "Pythonic" but there's a not too horrible way to do it:
>
> _Record = namedtuple('Record', 'url destination checksum')('', '', '')
>
> def Record(url, destination, checksum=''):
> return _Record._replace(
> url=url, destination=destination, checksum=checksum)
My usual pattern is to subclass the namedtuple class and override the
constructor (especially if I want to add behaviour):
class Record(namedtuple('_Record', ('url', 'dest', 'checksum'))):
__slots__ = ()
def __new__(...): #etc
Regards
Antoine.
More information about the Python-ideas
mailing list