Skip to content

Commit 64360ad

Browse files
rhettingermiss-islington
authored andcommitted
Complete and neaten-up namedtuple's replacement of builtin function lookups with derefs (GH-11794)
1 parent d9503c3 commit 64360ad

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

Lib/collections/__init__.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
390390
arg_list = repr(field_names).replace("'", "")[1:-1]
391391
repr_fmt = '(' + ', '.join(f'{name}=%r' for name in field_names) + ')'
392392
tuple_new = tuple.__new__
393-
_len = len
393+
_dict, _tuple, _len, _map, _zip = dict, tuple, len, map, zip
394394

395395
# Create all the named tuple methods to be added to the class namespace
396396

@@ -414,7 +414,7 @@ def _make(cls, iterable):
414414
'or iterable')
415415

416416
def _replace(_self, **kwds):
417-
result = _self._make(map(kwds.pop, field_names, _self))
417+
result = _self._make(_map(kwds.pop, field_names, _self))
418418
if kwds:
419419
raise ValueError(f'Got unexpected field names: {list(kwds)!r}')
420420
return result
@@ -426,18 +426,15 @@ def __repr__(self):
426426
'Return a nicely formatted representation string'
427427
return self.__class__.__name__ + repr_fmt % self
428428

429-
_dict, _zip = dict, zip
430-
431429
def _asdict(self):
432430
'Return a new dict which maps field names to their values.'
433431
return _dict(_zip(self._fields, self))
434432

435433
def __getnewargs__(self):
436434
'Return self as a plain tuple. Used by copy and pickle.'
437-
return tuple(self)
435+
return _tuple(self)
438436

439437
# Modify function metadata to help with introspection and debugging
440-
441438
for method in (__new__, _make.__func__, _replace,
442439
__repr__, _asdict, __getnewargs__):
443440
method.__qualname__ = f'{typename}.{method.__name__}'

0 commit comments

Comments
 (0)