mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00
Add error-checking to namedtuple's _replace() method.
This commit is contained in:
parent
02740f73ff
commit
1b50fd7cb3
3 changed files with 15 additions and 2 deletions
|
@ -78,7 +78,10 @@ def namedtuple(typename, field_names, verbose=False):
|
|||
return {%(dicttxt)s} \n
|
||||
def _replace(self, **kwds):
|
||||
'Return a new %(typename)s object replacing specified fields with new values'
|
||||
return self.__class__._make(map(kwds.get, %(field_names)r, self)) \n\n''' % locals()
|
||||
result = self.__class__._make(map(kwds.pop, %(field_names)r, self))
|
||||
if kwds:
|
||||
raise ValueError('Got unexpected field names: %%r' %% kwds.keys())
|
||||
return result \n\n''' % locals()
|
||||
for i, name in enumerate(field_names):
|
||||
template += ' %s = property(itemgetter(%d))\n' % (name, i)
|
||||
if verbose:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue