Ho bisogno di una funzione di aggiornamento profondo di python 3.1 per i dizionari (una funzione che aggiornerà in modo ricorsivo i dizionari figlio che si trovano all'interno di un dizionario principale).Python e dizionario come oggetto
Ma penso che in futuro la mia funzione potrebbe avere a che fare con oggetti che si comportano come dizionari ma non lo sono. E inoltre voglio evitare di usare isinstance
e type
(perché sono considerati cattivi, come posso leggere su quasi tutti i blog di Pythonista).
Ma la digitazione anatra fa parte della filosofia di Python, quindi come posso verificare se un oggetto è simile al dizionario?
Grazie!
Modifica: Grazie a tutti per le risposte. Nel caso in cui, la funzione che ho codificato può essere trovata in questo posto: http://blog.cafeaumiel.com/public/python/dict_deep_update.py
Prenda sempre dichiarazioni coperta sui blog con un grano di sale. Sono un grande fan della digitazione anatra e dell'approccio "più facile chiedere perdono che permesso", ma vedi il PEP 3119 riguardante l'ABC come nella mia risposta per una discussione più sfumata: http://www.python.org/dev/ peps/pep-3119/ – Anon
[domanda correlata] (http://stackoverflow.com/questions/8601268/python-class-that-acts-as-mapping-for-unpacking) - puoi testare l'esistenza di metodi lì. – jvdm