小编Tho*_*key的帖子

python 中的 Object.assign 等效项

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)

我知道,我知道,这是一种反模式,我应该尝试将命名参数分组到结构中以减少函数参数数量,如果我有一个带有许多二进制开关的大型可配置函数,我应该去掉常见的但如果我确实需要这样的功能,有可用的吗?

javascript python

5
推荐指数
1
解决办法
1138
查看次数

标签 统计

javascript ×1

python ×1