Hi alle,
ich habe ein C++ Objekt das einen array speichert. Bisher habe in per swig interface nur eine methode gehabt um auf einzelne Array Eintraege zuzugreifen:
v.getV(x,y,z)
Weiss jemand wie man mit swig den [][][] operator ueberladen kann dass man eleganter & klassisch auf einzelne Elemente zugreifen kann? Am besten lesen und schreiben.
v[x][y][z]
?
Gruesse und Danke schonmal!
T
Python Swig [] ueberladen
@thomas15: Ich sehe jetzt den Übergang von ``v.getV(x, y, z)`` zu ``v[x][y][z]`` nicht ganz. Da müsste man ja zusäzliche Zwischenobjekte definieren die bei ``v[x]`` zurückgegeben werden. Einfacher wird sicher die Umsetzung ``v[x, y, z]`` sein. Wobei man auch da wahrscheinlich extra Python- oder C++-Code braucht. Andererseits kenne ich mich mit SWIG auch nicht aus.
Hi BJ,BlackJack hat geschrieben:@thomas15: Ich sehe jetzt den Übergang von ``v.getV(x, y, z)`` zu ``v[x][y][z]`` nicht ganz. Da müsste man ja zusäzliche Zwischenobjekte definieren die bei ``v[x]`` zurückgegeben werden. Einfacher wird sicher die Umsetzung ``v[x, y, z]`` sein. Wobei man auch da wahrscheinlich extra Python- oder C++-Code braucht. Andererseits kenne ich mich mit SWIG auch nicht aus.
tatsaechlich wuerden die zwischenobjekte wie du sie nennst auch sinn machen, da habe ich schon drueber nachgedacht. ja.
mir ist aber fuer den ersten schritt erstmal wurscht welche syntax es wird, da ich es einfach schoener machen will.
es handelt sich um eine toolbox fuer die konsole so dass die benutzung intuitiver wird wenn man es mit [] implementiert, wie bei numpy / matlab oder so. im endeffekt wird es nicht funktioneller, nur wie gesagt intuitiver zu benutzen.
wenn also jemand mit swig in dieser form erfahrung hat dann bitte melden...
danke schonmal
Hoi,
na ja, die unterschiedliche Syntax hat aber auch verschiedene Bedeutungen.
Wie dem auch sei, das Problem ist wohl eher auf der C++-Seite zu suchen: http://www.parashift.com/c++-faq-lite/o ... #faq-13.10
Andererseits finde ich diese Lösung recht gut: http://www.codeguru.com/forum/showthrea ... did=231046
Und das müsste sich standardmäßig wrappen lassen.
HTH
Christian
na ja, die unterschiedliche Syntax hat aber auch verschiedene Bedeutungen.
Wie dem auch sei, das Problem ist wohl eher auf der C++-Seite zu suchen: http://www.parashift.com/c++-faq-lite/o ... #faq-13.10
Andererseits finde ich diese Lösung recht gut: http://www.codeguru.com/forum/showthrea ... did=231046
Und das müsste sich standardmäßig wrappen lassen.
HTH
Christian