Conosco un po 'di dom e vorrei conoscere ElementTree. Python 2.6 ha un'implementazione un po 'più vecchia di ElementTree, ma ancora utilizzabile. Tuttavia, sembra che venga fornito con due classi diverse: xml.etree.ElementTree e xml.etree.cElementTree. Qualcuno potrebbe essere così gentile da illuminarmi con le loro differenze? Grazie.Quali sono le differenze tra cElementtree e ElementTree?
risposta
È la stessa libreria (stessa API, stesse caratteristiche) ma ElementTree è implementato in Python e cElementTree è implementato in C.
Se è possibile, utilizzare l'implementazione C perché è ottimizzato per l'analisi rapida e l'utilizzo di memoria insufficiente ed è 15-20 volte più veloce dell'implementazione Python.
Utilizzare la versione Python se ci si trova in un ambiente limitato (caricamento della libreria C non consentito).
Ci sono alcune sottili differenze. In cElementTree, il metodo 'findtext' non aveva un parametro' default' (visto con Python 2.7.13). Questo può essere facilmente sostituito con 'findtext (" ... ") o" defaultValue "', comunque. –
Da http://effbot.org/zone/celementtree.htm:
Il modulo cElementTree è un'implementazione C dell'API ElementTree, ottimizzato per l'analisi veloce e l'uso di memoria insufficiente. Su documenti tipici, cElementTree è 15-20 volte più veloce della versione Python di elementtree, e utilizza 2-5 volte meno memoria
ElementTree è implementato in Python, mentre cElementTree è implementato in C. Così cElementTree sarà più veloce, ma anche non disponibile dove non si ha accesso a C, come ad esempio in Jython o IronPython o su Google App Engine.
Funzionalmente, dovrebbero essere equivalenti.
Riferimento: http://docs.python.org/library/xml.etree.elementtree.html. "Un'implementazione C di questa API è disponibile come xml.etree.cElementTree. " –
- 1. Quali sono le differenze tra $ {} e # {}?
- 2. Quali sono/sono le principali differenze tra Flink e Storm?
- 3. Quali sono/sono le differenze tra MSBuild e TFSBuild
- 4. Quali sono le differenze tra le classi Helper e Utility?
- 5. Quali sono le differenze tra & e &&, | e || in R?
- 6. Quali sono le differenze tra un compilatore e un linker?
- 7. Quali sono le differenze tra JSP e Facelets?
- 8. Quali sono le differenze tra un'istruzione GOTO e GOSUB BASIC
- 9. Quali sono le differenze tra MPI e OpenMP?
- 10. Quali sono le differenze tra RedrawWindow e UpdateWindow in Win32?
- 11. Quali sono le differenze tra evento e segnale in Qt
- 12. Quali sono le differenze effettive tra child_process.fork e cluster.fork?
- 13. Quali sono le differenze tra flex-grow e width?
- 14. Quali sono le principali differenze tra Babel e TypeScript
- 15. Quali sono le differenze tra Notifica e pynotify?
- 16. Quali sono le differenze tra coerenza sequenziale e coerenza quiescente?
- 17. Quali sono le differenze tra NSURLConnection e ASI-HTTP-Request?
- 18. Quali sono le differenze tra dpm() e dsm()?
- 19. Quali sono le differenze tra XmlSerializer e BinaryFormatter
- 20. Quali sono le differenze chiave tra JavaScript e ActionScript 3?
- 21. Quali sono le differenze tra flex mxml e actionscript-3
- 22. Quali sono le differenze tra Int e Integer in Scala?
- 23. Quali sono le differenze tra HasOne e References in Nhibernate?
- 24. Quali sono le differenze tra struct_time e datetime?
- 25. Quali sono le differenze attuali tra jQuery e Prototype?
- 26. Quali sono le differenze tra ibm jdk e oracle jdk?
- 27. Quali sono le differenze tra Conda e Anaconda
- 28. Quali sono le differenze tra Chrome, Canary e Chromium?
- 29. Quali sono le differenze tra l'autenticazione LDAP e Active Directory?
- 30. Quali sono le differenze tra un UIView e un CALayer?
Come parte, potresti trovare lxml.etree interessante; mentre è un modulo di terze parti, questo è un superset della specifica ElementTree e include funzionalità utili come il supporto reale XPath. –