lenguaje - python tutorial
TypeError: get() no toma argumentos de palabra clave (2)
Soy nuevo en Python y básicamente intento crear una tabla hash que compruebe si una clave apunta a un valor en la tabla, y si no, la inicializa en una matriz vacía. La parte ofensiva de mi código es la línea:
converted_comments[submission.id] = converted_comments.get(submission.id, default=0)
Me sale el error:
TypeError: get() takes no keyword arguments
Pero en la documentación (y varias piezas de código de ejemplo), puedo ver que toma un argumento predeterminado:
https://docs.python.org/2/library/stdtypes.html#dict.get http://www.tutorialspoint.com/python/dictionary_get.htm
A continuación se muestra la sintaxis del método get ():
dict.get (clave, predeterminado = Ninguno)
No hay nada sobre esto en The Stack, así que supongo que es un error de principiante.
Debido a la forma en que se desarrollaron las API Python de nivel C, muchas funciones y métodos incorporados en realidad no tienen nombres para sus argumentos. Incluso si la documentación llama al argumento default
, la función no reconoce el nombre default
como refiriéndose al segundo argumento opcional. Tienes que proporcionar el argumento posicionalmente
>>> d = {1: 2}
>>> d.get(0, default=0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: get() takes no keyword arguments
>>> d.get(0, 0)
0
El mensaje de error dice que get
no toma argumentos de palabra clave, pero que está proporcionando uno con default=0
converted_comments[submission.id] = converted_comments.get(submission.id, 0)