Python para principiantes

5.1. Pensar en objetos

Pensar en objetos, puede resultar -al inicio- una tarea difícil. Sin embargo, difícil no significa complejo. Por el contrario, pensar en objetos representa la mayor simplicidad que uno podría esperar del mundo de la programación. Pensar en objetos, es simple... aunque lo simple, no necesariamente signifique sencillo.

5.1.1. Y ¿qué es un objeto?

Pues, como dije antes, es simple. Olvidemos los formalismos, la informática y todo lo que nos rodea. Simplemente, olvida todo y concéntrate en lo que sigue. Lo explicaré de manera simple:

Un objeto es una cosa. Y, si una cosa es un sustantivo, entonces un objeto es un sustantivo.

Mira a tu alrededor y encontrarás decenas, cientos de objetos. Tu ordenador, es un objeto. Tú, eres un objeto. Tu llave es un objeto. El cenicero (ese que tienes frente a ti cargado de colillas de cigarrillo), es otro objeto. Tu mascota también es un objeto.

Truco Cuando pensamos en objetos, todos los sustantivos son objetos.

Sencillo ¿cierto? Entonces, de ahora en más, solo concéntrate en pensar la vida en objetos (al menos, hasta terminar de leer este documento).

5.1.2. Ahora ¿qué me dices si describimos las cualidades de un objeto?

Describir un objeto, es simplemente mencionar sus cualidades. Las cualidades son adjetivos. Si no sabes que es un adjetivo, estamos jodidos (y mucho). Pero, podemos decir que un adjetivo es una cualidad del sustantivo.

Entonces, para describir "la manera de ser" de un objeto, debemos preguntarnos ¿cómo es el objeto? Toda respuesta que comience por "el objeto es", seguida de un adjetivo, será una cualidad del objeto.

Algunos ejemplos:

  • El objeto es verde
  • El objeto es grande
  • El objeto es feo

Ahora, imagina que te encuentras frente a un niño de 2 años (niño: objeto que pregunta cosas que tú das por entendidas de forma implícita). Y cada vez que le dices las cualidades de un objeto al molesto niño-objeto, éste te pregunta: -¿Qué es...?, seguido del adjetivo con el cuál finalizaste tu frase. Entonces, tu le respondes diciendo es un/una seguido de un sustantivo. Te lo muestro con un ejemplo:

  • El objeto es verde. ¿Qué es verde? Un color.
  • El objeto es grande. ¿Qué es grande? Un tamaño.
  • El objeto es feo. ¿Qué es feo? Un aspecto.

Estos sustantivos que responden a la pregunta del niño, pueden pasar a formar parte de una locución adjetiva que especifique con mayor precisión, las descripciones anteriores:

  • El objeto es de color verde.
  • El objeto es de tamaño grande.
  • El objeto es de aspecto feo.

Podemos decir entonces -y todo esto, gracias al molesto niño-objeto-, que una cualidad, es un atributo (derivado de cualidad atribuible a un objeto) y que entonces, un objeto es un sustantivo que posee atributos, cuyas cualidades lo describen.

Veámoslo más gráficamente:

OBJETO (sustantivo) ATRIBUTO (locución adjetiva) CUALIDAD DEL ATRIBUTO (adjetivo)
(el) Objeto (es de) color Verde
(el) Objeto (es de) tamaño Grande
(el) Objeto (es de) aspecto Feo

5.1.3. Pero algunos objetos, también se componen de otros objetos...

Además de cualidades (locución adjetiva seguida de un adjetivo), los objetos tienen otras cosas. Estas otras cosas, son aquellas pseudo-cualidades que en vez de responder a ¿cómo es el objeto? responden a ¿cómo está compuesto el objeto? o incluso, aún más simple ¿Qué tiene el objeto?.

La respuesta a esta pregunta, estará dada por la frase “el objeto tiene...”, seguida de un adverbio de cantidad (uno, varios, muchos, algunos, unas cuantas) y un sustantivo.

Algunos ejemplos:

  • El objeto tiene algunas antenas
  • El objeto tiene un ojo
  • El objeto tiene unos cuantos pelos

Los componentes de un objeto, también integran los atributos de ese objeto. Solo que estos atributos, son algo particulares: son otros objetos que poseen sus propias cualidades. Es decir, que estos atributos-objeto también responderán a la pregunta ¿Cómo es/son ese/esos/esas? seguido del atributo-objeto (sustantivo).

Ampliemos el ejemplo para que se entienda mejor:

  • El objeto tiene algunas antenas. ¿Cómo son esas antenas?
    • Las antenas son de color violeta
    • Las antenas son de longitud extensa
  • El objeto tiene un ojo. ¿Cómo es ese ojo?
    • El ojo es de forma oval
    • El ojo es de color azul
    • El ojo es de tamaño grande
  • El objeto tiene unos cuantos pelos. ¿Cómo son esos pelos?
    • Los pelos son de color fucsia
    • Los pelos son de textura rugosa

Pongámoslo más gráfico:

OBJETO (sustantivo) ATRIBUTO-OBJETO (sustantivo) ATRIBUTOS (locución adjetiva) CUALIDADES DE LOS ATRIBUTOS (adjetivo)
(el) Objeto (tiene algunas) antenas (de) color Violeta
(el) Objeto (tiene algunas) antenas (de) longitud extensa
(el) Objeto (tiene un) ojo (de) forma Oval
(el) Objeto (tiene un) ojo (de) color azul
(el) Objeto (tiene un) ojo (de) tamaño grande
(el) Objeto (tiene unos cuantos) pelos (de) color Fucsia
(el) Objeto (tiene unos cuantos) pelos (de) textura rugosa

Entonces, podemos deducir que un objeto puede tener dos tipos de atributos:

  1. Los que responden a la pregunta ¿Cómo es el objeto? con la frase El objeto es... + adjetivo (atributos definidos por cualidades)
  2. Los que responden a la pregunta ¿Qué tiene el objeto? con la frase El objeto tiene... + sustantivo (atributos definidos por las cualidades de otro objeto).

Veámoslo aún, más gráficamente:

Esquema gráfico de varios objetos y sus atributos

Figura 5.1 Esquema gráfico de varios objetos y sus atributos

Viendo el gráfico anterior, tenemos lo siguiente: Un objeto (sustantivo) al cual hemos descrito con tres atributos (adjetivos) y otros tres atributos-objeto (sustantivos) los cuáles son a la vez, otros tres objetos (sustantivos) con sus atributos (adjetivos) correspondientes. ¿Simple, no? Ahora, compliquemos todo un poco.

5.1.4. Y también hay objetos que comparten características con otros objetos

Resulta ser, que nuestro Objeto, es prácticamente igual a un nuevo objeto. Es decir, que el nuevo objeto que estamos viendo, tiene absolutamente todas las características que nuestro primer objeto, es decir, tiene los mismos atributos. Pero también, tiene algunas más. Por ejemplo, este nuevo objeto, además de los atributos de nuestro primer objeto, tiene un pie. Es decir, que las características de nuestro nuevo objeto, serán todas las del objeto original, más una nueva: pie.

Repasemos las características de nuestro nuevo objeto:

  • El nuevo objeto es de color verde.
  • El nuevo objeto es de tamaño grande.
  • El nuevo objeto es de aspecto feo.
  • El nuevo objeto tiene algunas antenas. ¿Cómo son esas antenas?
    • Las antenas son de color violeta
    • Las antenas son de longitud extensa
  • El nuevo objeto tiene un ojo. ¿Cómo es ese ojo?
    • El ojo es de forma oval
    • El ojo es de color azul
    • El ojo es de tamaño grande
  • El nuevo objeto tiene unos cuantos pelos. ¿Cómo son esos pelos?
    • Los pelos son de color fucsia
    • Los pelos son de textura rugosa

(nuevas características)

  • El nuevo objeto tiene un pie. ¿Cómo es ese pie?
    • El pie es de forma rectangular
    • El pie es de color amarillo
    • El pie tiene 3 dedos. ¿Cómo son esos dedos?
      • Los dedos son de longitud mediana
      • Los dedos son de forma alargada
      • Los dedos son de color amarillo

Veamos todas las características de este nuevo, en un gráfico como lo hicimos antes.

Esquema gráfico de objetos creados a partir de otros objetos

Figura 5.2 Esquema gráfico de objetos creados a partir de otros objetos

Con mucha facilidad, podemos observar como nuestro nuevo objeto es una especie de objeto original ampliado. Es decir que el nuevo objeto, es exactamente igual al objeto original (comparte todos sus atributos) pero posee nuevas características.

Está claro además, que el objeto original y el nuevo objeto, son dos objetos diferentes ¿cierto? No obstante, el nuevo objeto es un sub-tipo del objeto original.

Ahora sí, a complicarnos aún más.

5.1.5. Los objetos, también tienen la capacidad de hacer cosas

Ya describimos las cualidades de nuestros objetos. Pero de lo que no hemos hablado, es de aquellas cosas que los objetos "pueden hacer", es decir, "cuáles son sus capacidades".

Los objetos tiene la capacidad de realizar acciones. Las acciones, son verbos. Es decir, que para conocer las capacidades de un objeto, debes preguntarte ¿Qué puede hacer el objeto? y la respuesta a esta pregunta, estará dada por todas aquellas que comiencen por la frase “el objeto puede” seguida de un verbo en infinitivo.

Algunos ejemplos:

  • El objeto original puede flotar
  • El nuevo objeto (además) puede saltar

Si completamos el gráfico anterior con las acciones, obtendremos lo siguiente:

Esquema gráfico de objetos que definen acciones

Figura 5.3 Esquema gráfico de objetos que definen acciones

Si observas el gráfico anterior, notarás que el nuevo objeto, no solo tiene los mismos atributos que el objeto original, sino que además, también puede realizar las mismas acciones que éste. Sencillo, cierto?

Ahora sí, compliquémonos del todo :)

5.1.6. Objetos y más objetos: la parte difícil

Si entendiste todo lo anterior, ahora viene la parte difícil. ¿Viste que esto de pensando en objetos viene a colación de la programación orientada a objetos? Bueno, la parte difícil es que en la programación, todo lo que acabamos de ver, se denomina de una forma particular. Pero, la explicación es la misma que te di antes.

Cuando en el documento... En la programación se denomina... Y con respecto a la programación orientada a objetos es...
Hablamos de objeto Objeto Un elemento
Hablamos de atributos (o cualidades) Propiedades Un elemento
Hablamos de acciones que puede realizar el objeto Métodos Un elemento
Hablamos de atributos-objeto Composición Una técnica
Vemos que los objetos relacionados entre sí, tienen nombres de atributos iguales (por ejemplo: color y tamaño) y sin embargo, pueden tener valores diferentes Polimorfismo Una característica
Hablamos de objetos que son sub-tipos (o ampliación) de otros Herencia Una característica

Ahora, pasemos a un marco un poco más académico.


Copyright (c) 2011-2013 Eugenia Bahit. La copia y redistribución de esta página se permite bajo los términos de la licencia Creative Commons Atribución NoComercial SinDerivadas 3.0 Unported siempre que se conserve esta nota de copyright.