¿Existe un equivalente para Object.assign(targetDict, srcDict) de Javascript en python, que toma todos los elementos de un diccionario a otro, reemplazándolos a medida que avanzamos? (Más limpio que un bucle for-in , de todos modos)
------ Contexto ---------
Uso Object.assign en javascript para expandir los parámetros de configuración-diccionario en funciones grandes, por ejemplo:
function someFunctionWithLotsOfArguments(namedArg1, namedArg2, namedArg3, namedArg4){} // turns into function someFunctionWithLotsOfArguments(argDictionary){ namedArg1 = argDictionary["namedArg1"]; // etc }El primer formulario permite argumentos predeterminados mientras que el segundo no, así que luego uso:
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 }Lo sé, lo sé, esto es un poco antipatrón, y debería tratar de agrupar mis argumentos con nombre en estructuras para reducir el número de parámetros de mi función, y si tengo una función configurable grande con muchos interruptores binarios, debería eliminar el común funcionalidad en funciones más pequeñas, etc. Pero si necesito una función como esta, ¿hay alguna disponible?
Python tiene un dict1.update(dict2) que hará exactamente eso. :)