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")
Để xác thực thuộc tính chuỗi gọi đối tượng dưới dạng chuỗi, tôi phải phát triển đoạn mã vụng về phía trên. Tôi tò mò nếu có một giải pháp thông minh hơn/hiệu quả hơn cho việc này.Chuỗi Python getattr dưới dạng chuỗi
lớn snipplet! Đáng buồn là máy chủ của tôi là debian lenny và chạy với python 2.5 trong khi giảm yêu cầu 2.6: ( – Hellnar
@hellinar: 'reduce' là một hàm dựng sẵn trong python2.5 – SilentGhost
@Hellnar: Python 2.5 có' reduce', ngoại trừ nó được xây dựng – kennytm