Necesito una función de actualización profunda de Python 3.1 para diccionarios (una función que actualizará recursivamente los diccionarios secundarios que están dentro de un diccionario principal).Python y diccionario como objeto
Pero creo que, en el futuro, mi función podría tener que tratar con objetos que se comportan como diccionarios pero no lo son. Y además quiero evitar usar isinstance
y type
(porque se consideran malos, como puedo leer en casi todos los blogs de Pythonista).
Pero la tipificación de pato es parte de la filosofía de Python, así que ¿cómo podría verificar si un objeto es similar a un diccionario?
Gracias!
Editar: Gracias a todos por las respuestas. Por si acaso, la función que codifiqué se puede encontrar en este lugar: http://blog.cafeaumiel.com/public/python/dict_deep_update.py
Siempre tome declaraciones generales en los blogs con un grano de sal. Soy un gran admirador de la tipificación de patos y el enfoque "más fácil de pedir perdón que de permiso", pero vea PEP 3119 con respecto a ABC como en mi respuesta a continuación para una discusión más matizada: http://www.python.org/dev/ peps/pep-3119/ – Anon
[Pregunta relacionada] (http://stackoverflow.com/questions/8601268/python-class-hathat-acts-as-mapping-for-unpacking) - podría probar la existencia de lo mencionado métodos allí. – jvdm