Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Python - Fundamentos de POO

Total questions: 15

Worksheet time: 8mins

Name
Class
Date
1.

En el contexto de la Programación Orientada a Objetos, si usamos la analogía de la repostería, ¿qué representa el "Objeto" si la "Clase" es el molde cortador de galletas?

a)

El sabor de la galleta.

b)

El horno donde se cocinan.

c)

La galleta horneada y lista para comer.

d)

La receta escrita en papel.

2.

Analiza el código de la imagen ¿Cuál es la función específica del método __init__ en este bloque?

a)

Crear el espacio en memoria para la clase.

b)

Definir las acciones que puede realizar el objeto.

c)

Destruir el objeto cuando ya no se usa.

d)

Inicializar los atributos del objeto recién creado.

3.

En Python, dentro de un método de clase, ¿qué representa el parámetro self?

a)

El valor de retorno del método.

b)

Una variable reservada para el sistema operativo.

c)

Una referencia a la clase global.

d)

Una referencia a la instancia actual del objeto.

4.

¿Cuál es la diferencia principal entre un "Atributo de Clase" y un "Atributo de Instancia"?

a)

El de clase requiere el uso de doble guion bajo siempre.

b)

El de instancia no se puede modificar nunca.

c)

El de clase se comparte entre todos los objetos; el de instancia es único para cada uno.

d)

El de clase solo puede guardar números; el de instancia guarda texto.

5.

Observa el código de la imagen ¿Qué concepto de POO estamos modificando directamente al ejecutar la segunda línea?

a)

La definición de la clase.

b)

El método constructor.

c)

La herencia del objeto.

d)

El estado del objeto.

6.

¿Cómo se denomina a las funciones que se definen dentro de una clase y determinan el comportamiento de los objetos?

a)

Tuplas.

b)

Variables.

c)

Métodos.

d)

Módulos.

7.

¿Qué convención utiliza Python para indicar que un atributo debería ser tratado como "protegido" (uso interno)?

a)

Dos guiones bajos al inicio del nombre.

b)

Escribir el nombre completamente en mayúsculas.

c)

Un guion bajo simple al inicio del nombre.

d)

Usar la palabra reservada protected.

8.

¿Cuál es el propósito principal de usar "Getters" y "Setters" (métodos de acceso y modificación)?

a)

Reducir el uso de memoria RAM.

b)

Convertir automáticamente todos los datos a texto.

c)

Controlar y validar el acceso y modificación de los datos.

d)

Hacer que el código se ejecute más rápido.

9.

Si necesitas una estructura de datos inmutable (que no se pueda modificar una vez creada) para representar coordenadas, ¿qué usarías?

a)

Un Diccionario.

b)

Un Conjunto.

c)

Una Tupla.

d)

Una Lista.

10.

Analiza el código de la imagen sobre encapsulamiento ¿Qué resultado se obtendrá al intentar ejecutar la última línea?

a)

Se detendrá el intérprete sin mensaje.

b)

Imprimirá None.

c)

Un error de atributo indicando que no existe.

d)

Imprimirá el número 10.

11.

¿Qué ocurre con un atributo privado en Python definido como __saldo dentro de la clase Cuenta debido al "name mangling"?

a)

Se convierte en una variable global del sistema

b)

Python lo renombra internamente con el nombre de la clase

c)

La variable se cifra y es imposible de leer

d)

Se elimina de memoria al finalizar el método

12.

Observa el caso de "sombreado" en el código de la imagen. Después de ejecutar esto, ¿qué sucede con el atributo ley de la CLASE Robot (el original)?

a)

Cambia a 'Destruir' para todos los robots.

b)

Se elimina para ahorrar memoria.

c)

Permanece inalterado con el valor 'No dañar'.

d)

Genera un error de conflicto de nombres.

13.

En un método setter para salario, si se intenta asignar un valor negativo, ¿qué práctica de validación es más adecuada?

a)

Guardar el dato negativo para rastreo interno.

b)

Borrar el objeto para evitar estados inconsistentes.

c)

Rechazar la asignación y notificar el error al usuario.

d)

Convertir automáticamente el número a su valor absoluto.

14.

Cuando un objeto Persona invoca un método del objeto Mascota que posee, ¿qué principio de diseño se evidencia principalmente?

a)

Herencia múltiple entre las dos clases.

b)

Instanciación recursiva en la composición.

c)

Polimorfismo estático aplicado a atributos.

d)

Colaboración o interacción entre objetos.

15.

¿Por qué se dice que en Python el encapsulamiento sigue la filosofía de "adultos responsables" (consenting adults - según Guido Van Rossum)?

a)

Porque se requiere una contraseña para ejecutar métodos privados.

b)

Porque Python no bloquea estrictamente el acceso, solo sugiere privacidad mediante convenciones.

c)

Porque solo los programadores senior pueden usar atributos privados.

d)

Porque Python elimina automáticamente el código inseguro.