summaryrefslogtreecommitdiffstats
path: root/Lib/collections/__init__.py
diff options
context:
space:
mode:
authorRaymond Hettinger <rhettinger@users.noreply.github.com>2019-02-08 18:37:39 (GMT)
committerMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2019-02-08 18:37:39 (GMT)
commit64360ada0f6123a051e9dc6cd04f030ec1322e46 (patch)
treefc2afd1424776febbb4b1d8da8663c3a721b0dbf /Lib/collections/__init__.py
parentd9503c307a8b6a7b73f6344183602ffb014d3356 (diff)
downloadcpython-64360ada0f6123a051e9dc6cd04f030ec1322e46.zip
cpython-64360ada0f6123a051e9dc6cd04f030ec1322e46.tar.gz
cpython-64360ada0f6123a051e9dc6cd04f030ec1322e46.tar.bz2
Complete and neaten-up namedtuple's replacement of builtin function lookups with derefs (GH-11794)
Diffstat (limited to 'Lib/collections/__init__.py')
-rw-r--r--Lib/collections/__init__.py9
1 files changed, 3 insertions, 6 deletions
diff --git a/Lib/collections/__init__.py b/Lib/collections/__init__.py
index aee79b9..d88c4aa 100644
--- a/Lib/collections/__init__.py
+++ b/Lib/collections/__init__.py
@@ -390,7 +390,7 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
arg_list = repr(field_names).replace("'", "")[1:-1]
repr_fmt = '(' + ', '.join(f'{name}=%r' for name in field_names) + ')'
tuple_new = tuple.__new__
- _len = len
+ _dict, _tuple, _len, _map, _zip = dict, tuple, len, map, zip
# Create all the named tuple methods to be added to the class namespace
@@ -414,7 +414,7 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
'or iterable')
def _replace(_self, **kwds):
- result = _self._make(map(kwds.pop, field_names, _self))
+ result = _self._make(_map(kwds.pop, field_names, _self))
if kwds:
raise ValueError(f'Got unexpected field names: {list(kwds)!r}')
return result
@@ -426,18 +426,15 @@ def namedtuple(typename, field_names, *, rename=False, defaults=None, module=Non
'Return a nicely formatted representation string'
return self.__class__.__name__ + repr_fmt % self
- _dict, _zip = dict, zip
-
def _asdict(self):
'Return a new dict which maps field names to their values.'
return _dict(_zip(self._fields, self))
def __getnewargs__(self):
'Return self as a plain tuple. Used by copy and pickle.'
- return tuple(self)
+ return _tuple(self)
# Modify function metadata to help with introspection and debugging
-
for method in (__new__, _make.__func__, _replace,
__repr__, _asdict, __getnewargs__):
method.__qualname__ = f'{typename}.{method.__name__}'