[pyar] ¿Este es el comportamiento esperado de dict()?

Luis Masuelli luismasuelli en hotmail.com
Mie Nov 4 21:23:03 ART 2015


No es un problema de dict() sino de cómo python maneja la semántica de **kwargs. Tienen que ser strings porque tiene que ser equivalente a la sintaxis desempacada: en python no podés hacer cosas como 1="hola".
In [1]: def f(*args, **kwargs):   ...:     print args, kwargs   ...:     
In [2]: f(**{1: 2})
Esto que acabo de poner te va a fallar, al menos en 2.* (no lo probé en 3 pero seguro tmb explota).

> To: pyar en python.org.ar
> From: humitos en gmail.com
> Date: Wed, 4 Nov 2015 19:14:25 -0500
> Subject: [pyar] ¿Este es el comportamiento esperado de dict()?
> 
> Hola,
> 
> Me acabo de encontrar con una situación interesante:
> 
> Python 3.4.3 (default, Oct 14 2015, 20:28:29)
> [GCC 4.8.4] on linux
> Type "help", "copyright", "credits" or "license" for more information.
>  >>> d = {1: 'key number'}
>  >>> dict(key='content data', **d)
> Traceback (most recent call last):
>    File "<stdin>", line 1, in <module>
> TypeError: keyword arguments must be strings
>  >>> d = {'1': 'key number'}
>  >>> dict(key='content data', **d)
> {'1': 'key number', 'key': 'content data'}
>  >>>
> 
> ¿Creen que es correcto este comportamiento?
> 
> ¿Porqué no puedo tener llaves numéricas en "d" y usarlo así "**d" en dict?
> 
> Saludos,
> 
> -- 
> 
> Kaufmann Manuel
> -- http://elblogdehumitos.com.ar/
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
> 
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> 
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
 		 	   		  
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151105/1c02f577/attachment.html>


More information about the pyar mailing list