Python dict.get () eleva KeyError

Me estoy perdiendo aquí, Python 2.7, tengo un diccionario mt , y uso el método get() , que según la documentación dice:

get(key[, default]) Devuelve el valor de clave si la clave está en el diccionario, sino predeterminado. Si no se proporciona el valor predeterminado, el valor predeterminado es Ninguno, por lo que este método nunca genera un KeyError .

pero sigo recibiendo

  File "/home/ubuntu/subscription-workers/commands/dr/rebilling.py", line 48, in rebill if mt.get('is_rebill', 0) == 1: KeyError: 'is_rebill' 

¿Alguna idea de por qué?

El mt es un dict normal, que a veces no tiene la clave.

Así que clavé el problema. Antes de que este código se pusiera en marcha había este

 File "/home/ubuntu/subscription-workers/commands/dr/rebilling.py", line 48, in rebill if mt['is_rebill'] == 1: KeyError: 'is_rebill' 

El problema era que había archivos .pyc de la versión anterior, pero el seguimiento de la stack estaba cargando el código real. despues de correr

 find . -name "*.pyc" -exec rm -rf {} \; 

Y recargando la aplicación todo estuvo bien y sin problemas.

 >>> mt = {'key1' : 1} >>> mt.get('is_rebill', 0) 0 

No genera un error de clave si la clave no está presente devuelve 0

 >>> mt.update({'is_rebill':1}) >>> mt.get('is_rebill', 0) 1 >>> if mt.get('is_rebill', 0) == 1: ... print True ... else: ... print False ... False