que opcionales funciones argumentos arg python

funciones - argumentos opcionales python



¿Cómo enviar un diccionario a una función que acepta** kwargs? (4)

Tengo una función que acepta parámetros de palabras clave comodín:

def func(**kargs): doA doB

¿Cómo le envío un diccionario?


No está claro al 100% por tu pregunta, pero si quieres pasar un kwargs través de kwargs , simplemente haces que el dict sea parte de otro dict, así:

my_dict = {} #the dict you want to pass to func kwargs = {''my_dict'': my_dict } #the keyword argument container func(**kwargs) #calling the function

Entonces puedes capturar my_dict en la función:

def func(**kwargs): my_dict = kwargs.get(''my_dict'')

o...

def func(my_dict, **kwargs): #reference my_dict directly from here my_dict[''new_key''] = 1234

Uso este último mucho cuando tengo el mismo conjunto de opciones que se pasa a diferentes funciones, pero algunas funciones solo usan algunas de las opciones (espero que tenga sentido ...). Pero, por supuesto, hay un millón de maneras de hacerlo. Si elaboras un poco tu problema, lo más probable es que podamos ayudarte mejor.


Solo usa func(**some_dict) para llamarlo.

Esto se documenta en la sección 4.7.4 del tutorial de python .

Tenga en cuenta que el mismo dictado no se pasa a la función. Se crea una nueva copia, por lo que some_dict is not kwargs .


para Python 3.6 simplemente ponga ** antes del nombre del diccionario

def lol(**kwargs): for i in kwargs: print(i) my_dict = { "s": 1, "a": 2, "l": 3 } lol(**my_dict)


func(**mydict)

esto significará kwargs = mydict dentro de la función

Todas las claves de mydict deben ser cadenas.