eclipse pydev kódkiegészítés? (egyéb IDE?)
Python programok szerkesztéséhez használnám az Eclipse Pydev-t.
Viszont a kódkiegészítéssel komoly gondjaim adódtak.
mainWindow=QtGui.QMainWindow()
Ez még OK, a mainWindow-ról tudja a szerkesztőm, hogy ő egy QMainWindow típusú objektum.
menuBar=mainWindow.menuBar()
Ez már problémás. A mainWindow.menuBar() egy QtGui.QMenuBar típusú objektumot ad vissza, de erről már nem tudom az eclipse.
Ha a fentit kicsit kiegészítem:
menuBar=mainWindow.menuBar()
assert isinstance(menuBar, QtGui.QMenuBar)
akkor már az menuBar változóval is működik a kiegészítés. (assert hasonlóan működik, mint bármely xUnit keretrendszerben, de futtatáskor kikapcsolható)
De...
self.menuBar=mainWindow.menuBar()
assert isinstance( self.menuBar, QtGui.QMenuBar )
ez már nem jó! Pusztán az elé írt "self." miatt...(a self. nélküli változók lokálisak, a self. kezdetűek az objektum változói/attribútumai)
Valami ötlet arra, hogy hogyan tudnám elmagyarázni a pydev-nek, hogy a self.xxxx változók milyen típusúak?
Google-n olyasmit kerestem, hogy "eclipse pydev code completion typecast", de csak az assert-es tippet találtam. :-(
Ha valaki tudna olyan Python IDE-t, ami ingyenes, windows-on+linuxon is fut, tud debuggolni, használható a kódkiegészítése, van benne refaktorálást segítő funkció stb., azt is szívesen veszem. (IDLE elég gyengécske :-( )
■ Viszont a kódkiegészítéssel komoly gondjaim adódtak.
mainWindow=QtGui.QMainWindow()
Ez még OK, a mainWindow-ról tudja a szerkesztőm, hogy ő egy QMainWindow típusú objektum.
menuBar=mainWindow.menuBar()
Ez már problémás. A mainWindow.menuBar() egy QtGui.QMenuBar típusú objektumot ad vissza, de erről már nem tudom az eclipse.
Ha a fentit kicsit kiegészítem:
menuBar=mainWindow.menuBar()
assert isinstance(menuBar, QtGui.QMenuBar)
akkor már az menuBar változóval is működik a kiegészítés. (assert hasonlóan működik, mint bármely xUnit keretrendszerben, de futtatáskor kikapcsolható)
De...
self.menuBar=mainWindow.menuBar()
assert isinstance( self.menuBar, QtGui.QMenuBar )
ez már nem jó! Pusztán az elé írt "self." miatt...(a self. nélküli változók lokálisak, a self. kezdetűek az objektum változói/attribútumai)
Valami ötlet arra, hogy hogyan tudnám elmagyarázni a pydev-nek, hogy a self.xxxx változók milyen típusúak?
Google-n olyasmit kerestem, hogy "eclipse pydev code completion typecast", de csak az assert-es tippet találtam. :-(
Ha valaki tudna olyan Python IDE-t, ami ingyenes, windows-on+linuxon is fut, tud debuggolni, használható a kódkiegészítése, van benne refaktorálást segítő funkció stb., azt is szívesen veszem. (IDLE elég gyengécske :-( )
Komodo?
IDE drága ahhoz, hogy játékra
Tartok tőle, hogy jobb híján marad az eclipse.
Komodo Edit
Netbeans
Komodo Edittel az a gond, hogy nem tud debuggolni.
Workaround
:(
Ez épp olyan csúnya, mint
Sajnos más lehetőség nincs rá, hogy jelezd a példányváltozó típusát a PyDev felé. :-(
* = az assert annyiból jobb, hogy ha a pythont -O opcióval indítom, akkor bekapcsol egy alap optimalizálót, amitől az assert sorokat kommentként kezeli az interpreter. Épp csak annyi a baj vele, hogy példányváltozókra nincs hatása az eclipse-es környezetben. (az eredeti funkciója működik, de a pydev nem törődik vele)
Ahogy gondolod
Ugyanez okból azt sem tudtam, hogy NetBeans-ben nincs python, ezt a szerkesztőt csak kipróbáltam (PHP-hoz).
JetBrains
Én most php-ból váltottam netbeans-ről / Zend Studió 5.5 -ről a PhpStormra, és van pythonos editoruk.
http://www.jetbrains.com/pycharm/
Van teljes értékü 30 napos trial, ha meg meg kell venni, nem olyan drága.