NEW
Font size
S
M
L
XL
WorksheetsCuestionario Módulo 4 - FS-Python
Total questions: 60
Worksheet time: 2hrs 0mins
Name
Class
Date
1.
¿Qué es la Programación Orientada a Objetos (POO)?
a)
Un lenguaje de programación
b)
Un paradigma que modela entidades del mundo real mediante clases y objetos
c)
Una librería de Python para manejar objetos
d)
Una técnica para programar solo con funciones
2.
¿Cuál es una razón por la que surgió la POO?
a)
Para eliminar la necesidad de compilar
b)
Para superar limitaciones de la programación estructurada en sistemas grandes
c)
Para reemplazar las bases de datos
d)
Para evitar el uso de variables
3.
¿Cuál de estas es una ventaja típica de la POO?
a)
Mayor dependencia de variables globales
b)
Modularidad mediante clases que representan partes del sistema
c)
Evitar totalmente el uso de métodos
d)
Eliminar la necesidad de diseñar
4.
En POO, un objeto combina:
a)
Funciones y librerías
b)
Datos y métodos
c)
Clases y módulos
d)
Variables globales
5.
¿Qué principio se relaciona con ocultar detalles internos y exponer solo lo esencial?
a)
Iteración
b)
Abstracción
c)
Serialización
d)
Recursión
6.
¿Qué principio busca proteger el estado interno del objeto restringiendo el acceso directo?
a)
Encapsulamiento
b)
Herencia
c)
Polimorfismo
d)
Compilación
7.
¿Cuál de estas características describe mejor la programación estructurada según la comparación vista?
a)
Organiza el código en clases y objetos
b)
Organiza el código en funciones y procedimientos
c)
No utiliza funciones
d)
Solo funciona con herencia
8.
En la comparación POO vs estructurada, ¿cómo se manejan los datos en POO?
a)
Principalmente con variables globales
b)
Con atributos dentro de objetos
c)
Solo con archivos externos
d)
Con punteros obligatorios
9.
¿Qué idea resume el enfoque “pensar en objetos”?
a)
Pensar en pasos secuenciales únicamente
b)
Modelar entidades con propiedades y acciones, como en el mundo real
c)
Evitar representar datos
d)
Usar solo programación funcional
10.
¿Cuál es un ejemplo correcto de ‘atributos’ y ‘métodos’ en un automóvil?
a)
Atributos: arrancar(), frenar(); Métodos: color, marca
b)
Atributos: color, marca; Métodos: arrancar(), frenar()
c)
Atributos: funciones; Métodos: variables globales
d)
Atributos: módulos; Métodos: librerías
11.
Una clase es:
a)
Una instancia concreta con datos propios
b)
Un molde o plantilla que define atributos y métodos
c)
Un archivo que siempre termina en .class
d)
Una variable global del programa
12.
Un objeto es:
a)
La definición general de un tipo de entidad
b)
Una instancia concreta creada a partir de una clase
c)
Un diagrama UML
d)
Un método especial
13.
Instanciar una clase significa:
a)
Copiar un archivo de código
b)
Crear un objeto a partir de esa clase
c)
Cambiar el nombre de la clase
d)
Eliminar la clase
14.
¿Cuál afirmación es correcta sobre clase, objeto e instancia?
a)
Instancia y objeto son sinónimos en este contexto
b)
Clase y objeto son sinónimos
c)
Instancia es la clase padre
d)
Objeto es siempre una función
15.
¿Cuál es el propósito principal de __init__() en Python?
a)
Definir cómo se imprime el objeto
b)
Inicializar el estado del objeto asignando atributos
c)
Hereder métodos automáticamente
d)
Convertir una clase en abstracta
16.
Si creas dos objetos de la misma clase con datos distintos, entonces:
a)
Ambos comparten obligatoriamente los mismos valores
b)
Cada objeto mantiene su propio estado (valores de atributos)
c)
Solo el último objeto conserva el estado
d)
No se pueden crear múltiples objetos
17.
¿Qué significa “estado de un objeto”?
a)
El nombre de la clase
b)
El conjunto de valores actuales de sus atributos
c)
El archivo donde está definido
d)
La lista de métodos de la clase
18.
La metáfora ‘Clase: receta; Objeto: torta’ implica que:
a)
La receta es una instancia de la torta
b)
La torta se crea a partir de la receta
c)
La receta depende de la torta
d)
Receta y torta son lo mismo
19.
¿Qué es un atributo en POO?
a)
Una librería externa
b)
Una variable que define características/estado del objeto
c)
Una función global
d)
Un tipo de diagrama
20.
¿Qué es un método en una clase?
a)
Una variable privada obligatoria
b)
Una función definida dentro de una clase que representa comportamiento
c)
Un archivo importado
d)
Un operador aritmético
21.
En Python, ¿por qué los métodos de instancia reciben self como primer parámetro?
a)
Para acceder a módulos globales
b)
Para referirse al propio objeto (instancia)
c)
Para indicar que el método es estático
d)
Para evitar usar atributos
22.
¿Qué describe mejor el “comportamiento” de un objeto?
a)
El nombre de su archivo
b)
El conjunto de acciones que puede realizar, definido por sus métodos
c)
La cantidad de clases del proyecto
d)
El tipo de variable usada
23.
Un método puede modificar el estado del objeto cuando:
a)
No usa parámetros
b)
Cambia valores de atributos del objeto
c)
Solo imprime por pantalla
d)
Está definido fuera de la clase
24.
En Python, un atributo público típicamente se escribe como:
a)
self.__atributo
b)
self._atributo
c)
self.atributo
d)
private atributo
25.
En Python, self._atributo se interpreta como:
a)
Atributo privado con name mangling
b)
Atributo protegido por convención (uso interno/subclases)
c)
Atributo público global
d)
Método estático
26.
En Python, self.__atributo se interpreta como:
a)
Atributo protegido por convención
b)
Atributo privado con name mangling
c)
Atributo público
d)
Atributo de clase
27.
¿Cuál es la intención principal del encapsulamiento?
a)
Ocultar todo siempre
b)
Evitar modificaciones no controladas y asegurar integridad de datos
c)
Eliminar la necesidad de métodos
d)
Hacer el código más largo
28.
Getters y setters se usan principalmente para:
a)
Evitar crear clases
b)
Controlar acceso y modificación, aplicando validaciones
c)
Reemplazar UML
d)
Forzar herencia múltiple
29.
Según el ejemplo, ¿qué NO deberías hacer si el atributo es privado?
a)
Usar un getter para leerlo
b)
Modificarlo con un setter que valida
c)
Asignarlo directamente desde fuera de la clase
d)
Validar antes de asignar
30.
¿Qué caracteriza a un método de clase (@classmethod)?
a)
Recibe self como primer parámetro
b)
Recibe cls como primer parámetro y está vinculado a la clase
c)
No recibe parámetros
d)
Solo puede imprimir
31.
¿Para qué se suele usar un método de clase, según el material?
a)
Para acceder solo a atributos privados de instancias
b)
Para comportamientos comunes/globales o constructores alternativos
c)
Para reemplazar el __init__ siempre
d)
Para ejecutar código fuera de la clase
32.
¿Qué caracteriza a un método estático (@staticmethod)?
a)
Accede obligatoriamente a self
b)
Accede obligatoriamente a cls
c)
No depende del estado de la clase ni de la instancia
d)
Solo sirve para herencia
33.
Según la comparación rápida, ¿qué tipo de método se usa para “lógica auxiliar o validaciones”?
a)
Método de instancia
b)
Método de clase
c)
Método estático
d)
Constructor
34.
En Python, la sobrecarga de métodos nativa:
a)
Existe y funciona igual que en Java
b)
No existe; si defines dos métodos con el mismo nombre queda el último
c)
Solo existe para métodos privados
d)
Solo existe con herencia múltiple
35.
¿Cómo se puede simular sobrecarga en Python según el material?
a)
Con múltiples archivos .py
b)
Con parámetros por defecto y/o *args/**kwargs y condicionales internas
c)
Con UML
d)
Con @classmethod únicamente
36.
¿Para qué sirve __str__() principalmente?
a)
Para inicializar atributos
b)
Para personalizar cómo se imprime un objeto con print(objeto)
c)
Para crear herencia múltiple
d)
Para ocultar atributos
37.
Sin __str__(), imprimir un objeto normalmente muestra:
a)
Siempre sus atributos en JSON
b)
Una representación por defecto tipo <__main__.Clase object at ...>
c)
El código fuente de la clase
d)
Un diagrama UML
38.
¿Qué significa que los objetos colaboren?
a)
Que siempre hereden entre sí
b)
Que una clase incluya/usa otra como atributo para cumplir tareas
c)
Que todos sean estáticos
d)
Que no puedan interactuar
39.
En una relación de colaboración, se cumple que:
a)
Si el objeto A desaparece, B también desaparece siempre
b)
Es flexible: un objeto usa a otro, pero puede existir sin él
c)
Siempre se representa con rombo negro
d)
Siempre implica herencia
40.
¿Qué describe mejor la composición?
a)
Relación débil y opcional
b)
Relación fuerte: el todo está hecho de partes que no tienen sentido sin él
c)
Relación temporal por uso de un método
d)
Relación solo entre funciones
41.
¿Cuál ejemplo se asocia a composición en UML?
a)
Casa ◆── Habitación
b)
Cliente ↔ Pedido
c)
Factura → Impresora
d)
Empleado ► Gerente
42.
UML significa:
a)
Universal Modeling Language
b)
Unified Modeling Language
c)
Unified Module Logic
d)
User Modeling Language
43.
¿Qué representa un diagrama de clases?
a)
Estructura estática del sistema (clases, atributos, métodos y relaciones)
b)
El flujo de ejecución del programa paso a paso
c)
Solo pantallas de una app
d)
Solo consultas a base de datos
44.
Una clase en UML se representa como:
a)
Un círculo
b)
Un rectángulo dividido en tres secciones
c)
Una flecha punteada
d)
Un rombo negro
45.
En UML, el modificador '+' significa:
a)
Privado
b)
Protegido
c)
Público
d)
Abstracto
46.
En UML, el modificador '-' significa:
a)
Público
b)
Privado
c)
Protegido
d)
Estático
47.
En UML, el modificador '#' significa:
a)
Público
b)
Privado
c)
Protegido
d)
Dependencia
48.
En UML, la asociación se representa típicamente con:
a)
Línea sólida simple
b)
Línea punteada con flecha
c)
Rombo negro
d)
Triángulo blanco
49.
En UML, la dependencia se representa con:
a)
Línea sólida sin flecha
b)
Línea punteada con flecha
c)
Rombo blanco
d)
Rombo negro
50.
La herencia (generalización) en UML se representa con:
a)
Rombo blanco
b)
Flecha con triángulo blanco
c)
Rombo negro
d)
Línea punteada
51.
La agregación en UML se representa con:
a)
Rombo negro
b)
Rombo blanco
c)
Triángulo blanco
d)
Línea punteada
52.
La composición en UML se representa con:
a)
Rombo blanco
b)
Rombo negro
c)
Flecha punteada
d)
Línea simple
53.
La sintaxis UML correcta para un atributo es:
a)
nombre(tipo): visibilidad
b)
visibilidad nombre: tipo
c)
tipo nombre: visibilidad
d)
visibilidad tipo(nombre)
54.
La sintaxis UML correcta para un método es:
a)
visibilidad nombre(parámetros): tipo de retorno
b)
nombre: visibilidad(parámetros)
c)
tipo retorno: nombre(parámetros)
d)
parámetros nombre: tipo
55.
En UML, un método estático se indica como:
a)
En cursiva
b)
Subrayado
c)
Con rombo negro
d)
Con línea punteada
56.
En UML, un método abstracto se indica como:
a)
Subrayado
b)
En cursiva
c)
Con rombo blanco
d)
Con flecha punteada
57.
¿Qué es la herencia en POO?
a)
Una forma de ocultar atributos
b)
Crear nuevas clases a partir de clases existentes heredando atributos y métodos
c)
Una manera de evitar clases
d)
Una técnica de sobrecarga nativa en Python
58.
La relación adecuada para heredar suele ser del tipo:
a)
“tiene un”
b)
“es un”
c)
“usa temporalmente”
d)
“depende de una función”
59.
Una subclase puede sobrescribir (override) un método para:
a)
Cambiar su comportamiento manteniendo el nombre del método
b)
Eliminar la clase padre
c)
Evitar usar self
d)
Convertirlo en estático automáticamente
60.
¿Qué es el polimorfismo en POO?
a)
Una clase que no tiene atributos
b)
Que una misma operación/método tenga distintos comportamientos según el objeto
c)
La imposibilidad de heredar
d)
El uso obligatorio de herencia múltiple
Reset
