Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 3e82ae0

Browse files
committed
Replace **locals() with explicit field names.
1 parent 9a3f4cb commit 3e82ae0

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

Lib/collections/__init__.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,9 +288,6 @@ def namedtuple(typename, field_names, verbose=False, rename=False):
288288
seen_names.add(name)
289289

290290
# Create and fill-in the class template
291-
numfields = len(field_names)
292-
argtxt = repr(field_names).replace("'", "")[1:-1] # tuple repr without parens or quotes
293-
reprtxt = ', '.join('{}=%r'.format(name) for name in field_names)
294291
template = '''class {typename}(tuple):
295292
'{typename}({argtxt})'
296293
@@ -329,7 +326,14 @@ def __getnewargs__(self):
329326
'Return self as a plain tuple. Used by copy and pickle.'
330327
return tuple(self)
331328
332-
'''.format(**locals())
329+
'''
330+
template = template.format(
331+
typename = typename,
332+
field_names = field_names,
333+
argtxt = repr(field_names).replace("'", "")[1:-1],
334+
numfields = len(field_names),
335+
reprtxt = ', '.join('{}=%r'.format(name) for name in field_names),
336+
)
333337
for i, name in enumerate(field_names):
334338
template += " %s = _property(_itemgetter(%d), doc='Alias for field number %d')\n" % (name, i, i)
335339
if verbose:

0 commit comments

Comments
 (0)