Try-Except-Import eleganter gestalten
Verfasst: Dienstag 25. August 2009, 11:08
Hi,
ich importiere in meinem Code ElementTree. Dabei soll die lxml-Variante bevorzugt werden und dann quasi nach unten hin auf mögliche Alternativen zurückgegriffen werden:
Ich persönlich finde diese Verschachtelung etwas unglücklich. Würde man das in "gutem" Code so belassen (ist es also gar nicht unglücklich) oder gibt es bessere Wege? Oder würdet ihr sagen, der Nutzer möchte lieber selbst entscheiden, welche Implementierung verwendet wird?
Mein Ziel ist eigentlich nur, dass ich eine etwas abgeänderte API für Zugriff und Erstellung von Elementen verwenden möchte. Eine Funktion set_title() würde meinetwegen das <html>-, das <head>- und das <title>-Element erstellen (sofern nicht vorhanden) und den übergebenen Text da reinpacken. Aber das nur am Rande.
ich importiere in meinem Code ElementTree. Dabei soll die lxml-Variante bevorzugt werden und dann quasi nach unten hin auf mögliche Alternativen zurückgegriffen werden:
Code: Alles auswählen
try:
# The preferred implementation
from lxml import etree as ET
except ImportError:
try:
# In standard library since Python 2.5
from xml.etree import cElementTree as ET
except ImportError:
try:
# C implementation installed from source
import cElementTree as ET
except ImportError:
# Python implementation installed from source
from elementtree import ElementTree as ET
Mein Ziel ist eigentlich nur, dass ich eine etwas abgeänderte API für Zugriff und Erstellung von Elementen verwenden möchte. Eine Funktion set_title() würde meinetwegen das <html>-, das <head>- und das <title>-Element erstellen (sofern nicht vorhanden) und den übergebenen Text da reinpacken. Aber das nur am Rande.