import amara
def chain_attribute_call(obj, attlist):
"""
Allows to execute chain attribute calls
"""
splitted_attrs = attlist.split(".")
current_dom = obj
for attr in splitted_attrs:
current_dom = getattr(current_dom, attr)
return current_dom
doc = amara.parse("sample.xml")
print chain_attribute_call(doc, "X.Y.Z")
Um Kettenattributaufrufe für ein Objekt als String auszuführen, musste ich das kluge Snippet oben entwickeln. Ich bin gespannt, ob es eine cleverere/effizientere Lösung dafür geben würde.Python Chain getattr als String
Großen snipplet! Leider ist mein Server debian Lenny und läuft mit Python 2.5, während reduzieren erfordert 2.6 :( – Hellnar
@hellinar: 'reduce' ist eine integrierte Funktion in Python2.5 – SilentGhost
@Hellnar: Python 2.5 hat' reduce', außer es ist ein gebaut -in Funktion statt in 'functools' zu sein – kennytm