python 中是否有 Javascript 的等效项Object.assign(targetDict, srcDict),它将所有项目从一个字典放入另一个字典中,并进行替换?(for-in无论如何,比循环更干净)
- - - 语境 - - - - -
我Object.assign在 javascript 中使用来扩展大型函数中的设置字典参数,例如:
function someFunctionWithLotsOfArguments(namedArg1, namedArg2, namedArg3, namedArg4){}
// turns into
function someFunctionWithLotsOfArguments(argDictionary){
namedArg1 = argDictionary["namedArg1"]; // etc
}
Run Code Online (Sandbox Code Playgroud)
第一种形式允许使用默认参数,而第二种形式则不允许,所以我使用:
function someFunctionWithLotsOfArguments(namedArg1="default1", namedArg2="default2", namedArg3="default3", namedArg4="default4"){}
// turns into
function someFunctionWithLotsOfArguments(argDictionary){
defaultArgs = {
namedArg1: "default1",
namedArg2: "default2",
namedArg3: "default3",
namedArg4: "default4"
}
Object.assign(defaultArgs, argDictionary);
argDictionary = defaultArgs;
namedArg1 = argDictionary["namedArg1"]; // etc
}
Run Code Online (Sandbox Code Playgroud)
我知道,我知道,这是一种反模式,我应该尝试将命名参数分组到结构中以减少函数参数数量,如果我有一个带有许多二进制开关的大型可配置函数,我应该去掉常见的但如果我确实需要这样的功能,有可用的吗?