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")
En oder para ejecutar llamadas de atributo de cadena para un objeto como una cadena, tuve que desarrollar el fragmento torpe arriba. Tengo curiosidad de saber si habría una solución más inteligente/eficiente para esto.Python Cadena getattr como una cadena
Gran snipplet! Lamentablemente, mi servidor es Debian Lenny y se ejecuta con Python 2.5, mientras que reduce requiere 2.6 :( – Hellnar
@hellinar: 'reduce' es una función incorporada en python2.5 – SilentGhost
@Hellnar: Python 2.5 tiene' reducir', excepto que es una construcción -en función en lugar de estar en 'functools'. – kennytm