diff options
author | Alexander Belopolsky <alexander.belopolsky@gmail.com> | 2015-03-01 20:08:17 (GMT) |
---|---|---|
committer | Alexander Belopolsky <alexander.belopolsky@gmail.com> | 2015-03-01 20:08:17 (GMT) |
commit | e49af341518ba22186fc523ec23ccff462ab439e (patch) | |
tree | 0c426b6e661d637c14c2d9c467a99580b985fb4a /Lib/functools.py | |
parent | e2e178e081a621d2c1fd8ceb65ce7735b3036def (diff) | |
download | cpython-e49af341518ba22186fc523ec23ccff462ab439e.zip cpython-e49af341518ba22186fc523ec23ccff462ab439e.tar.gz cpython-e49af341518ba22186fc523ec23ccff462ab439e.tar.bz2 |
Issue #7830: Flatten nested functools.partial.
Diffstat (limited to 'Lib/functools.py')
-rw-r--r-- | Lib/functools.py | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Lib/functools.py b/Lib/functools.py index 20a26f9..91e9685 100644 --- a/Lib/functools.py +++ b/Lib/functools.py @@ -241,6 +241,14 @@ def partial(func, *args, **keywords): """New function with partial application of the given arguments and keywords. """ + if hasattr(func, 'func'): + args = func.args + args + tmpkw = func.keywords.copy() + tmpkw.update(keywords) + keywords = tmpkw + del tmpkw + func = func.func + def newfunc(*fargs, **fkeywords): newkeywords = keywords.copy() newkeywords.update(fkeywords) |