В чем разница между cElementtree и ElementTree?
Я знаю немного о доме и хотел бы узнать об ElementTree. Python 2.6 имеет несколько более старую версию ElementTree, но все же можно использовать. Однако похоже, что он поставляется с двумя разными классами: xml.etree.ElementTree и xml.etree.cElementTree. Кто-нибудь, пожалуйста, будьте так добры, чтобы просветить меня своими различиями? Спасибо.
Ответы
Ответ 1
Это одна и та же библиотека (тот же API, те же функции), но ElementTree реализован в Python, а cElementTree реализован в C.
Если вы можете, используйте реализацию C, потому что она оптимизирована для быстрого анализа и использования с низкой памятью и в 15-20 раз быстрее, чем реализация Python.
Используйте версию Python, если вы находитесь в ограниченной среде (загрузка библиотеки C не разрешена).
Ответ 2
Из http://effbot.org/zone/celementtree.htm:
Модуль cElementTree представляет собой реализацию C API ElementTree, оптимизированную для быстрого анализа и использования низкой памяти. В типичных документах cElementTree в 15-20 раз быстрее, чем версия ElementTree на Python, и использует память в 2-5 раз меньше
Ответ 3
ElementTree реализован в python, тогда как cElementTree реализован в C. Таким образом, cElementTree будет быстрее, но также недоступен, если у вас нет доступа к C, например, в Jython или IronPython или в Google App Engine.
Функционально они должны быть эквивалентными.