aba*_*ter 1 python lambda arguments function
假设我有一个功能
def oldfunction(arg1,arg2,arg3):
print(arg1,arg2,arg3)
Run Code Online (Sandbox Code Playgroud)
我想创建一个新函数,我将第一个参数设置为10.新的函数行为将是:
>>> new_function(20,"30")
10 20 '30'
Run Code Online (Sandbox Code Playgroud)
一种方法是使用lambda函数:
>>> newfunction = lambda arg2,arg3: function(10,arg2,arg3)
>>> newfunction("ten",[10])
(10, 'ten', [10])
Run Code Online (Sandbox Code Playgroud)
但是,假设我事先并不知道"旧功能"有多少参数.我仍然想创建一个与"oldfunction"相同的新函数,但是第一个参数设置,并且所有后续参数都保持打开状态.
有没有办法做到这一点?
from functools import partial
new_function = partial( oldfunction, 10 )
Run Code Online (Sandbox Code Playgroud)