Java, C++ ve Delphi'den geliyorum, şimdi Python'da küçük bir proje üzerinde çalışıyorum. Şimdiye kadar çoğu problemi çözebiliyordum ama çözülmemiş olanlarım var:Python object typecasting ve XML
Sadece xml düğümünü ext_xml_node içine yazarak bir XML Düğümünün getAttribute() yönteminin yerine koymak/üzerine yazmak istiyorum. Proje yeni getAttribute kullanır. Okuyabildiğim kadarıyla, python'da gerçek tipte cast (C++ vb. Gibi) yapmanın bir yolu yoktur, bu yüzden belirli işlevlerde (xml node argümanı olan bir dağıtıcı gibi diğer alt işlevleri çağırır)
class ext_xml_node(xml_node): ... def getAttribute(self, name): unhandled_value = super...(name) handled_value= dosomethingiwth(unhandled_value) return handled_value def dispatcher(self, xml_node): for child_node in xml_node.childNodes: if child_node.nodeName == 'setvariable': bla = ext_xml_node(child_node) self.handle_setvariable_statement(bla) def handle_setvariable_statement(xml_node): varname= xml_node.getAttribute("varname") # Now it should call ext_xml_node.getAttribute Method
Ben bu projede her getAttribute işlevini yerine istemiyorum yeni sınıf ext_xml_node için tartışmanın döküm yazın ve başka bir yol (ördek yazarak kesinlikle çalışmıyor) bulunmaktadır ya da ben gerçekten yazmalıyım her bir özellik üzerinde bu verim ile bir işlev - ve nasıl?
Ne istediğinizi tam olarak açık değil. Sorunuzu gösteren kısa, eksiksiz, bağımsız bir program üretebilir misiniz? Daha fazla bilgi için bakınız [mcve]. –