Y yo pensaba que me lo estabais explicando a mí ^^U.
Para empezar, ¿qué diantres es un objeto?
Todo lo que tienes a tu alrededor son objetos.
El típico ejemplo del coche: un coche es un objeto. Este objeto tiene propiedades (cantidad de kilómetros, número de ruedas, color...), funciones o métodos (arrancar el coche, frenarlo...), y tiene ciertas características:
-Herencia: imagínate las características que tienen todos los coches (4 ruedas, función de arrancar y frenar...). Pues bien, podemos crear muchos tipos diferentes de coche, y para evitar tener que repetir en todos que tienen 4 ruedas, se dice que
heredan del modelo "básico" de coche. Básicamente, habrá coches con más funciones (poner música, poner radio...) o con más propiedades (color diferente, más o menos asientos), pero todos ellos se basan en lo mismo.
-Abstracción: esto es la primera regla de la informática: si algo funciona, no lo toques. Básicamente, cuando un coche arranca te importa tres pepinos si lo que hace es una chispa para quemar gasolina. Lo que te importa es que cuando tu le dices que arranque, arranque. Abstracción significa que las funciones simplemente funcionan.
-Encapsulamiento: esto es algo que creo que han comentado por arriba, y similar a la abstracción. Un coche tiene un procedimiento interno muy complejo, pero desde fuera lo único que puedes hacer con él es mirar ciertas propiedades (no todas), y hacer varias funciones (no todas). Esto significa que un objeto tiene varias funciones/propiedades que lo comunican con el exterior, pero por lo demás, lo que hay en su interior permanece oculto.
-Reutilización: un coche lo puedes usar para ir desde aquí a Rusia, luego para desguazarlo y venderlo como chatarra...
La POO es algo bastante similar: se crean entidades abstractas, objetos, con ciertas propiedades y métodos. Estos objetos se basan en otros objetos, heredando de ellos sus propiedades y métodos. Estos objetos tienen funciones que pueden ser muy complejas por dentro, pero que funcionan y no nos interesa cómo. Estos objetos sólo se relacionan con otros objetos mediante algunos métodos/propiedades. Estos objetos se pueden reutilizar en varios programas distintos.
Espero no haberme equivocado en nada (si lo he hecho, que alguien me corrija).
Volviendo al tema: he estado buscando, pero no he conseguido encontrar ningún IDE libre para python que me interese (de momento quiero huir de Eclipse, pero me temo que al final es lo que tocará). ¿Alguna sugerencia?