Glosario — Programación II
A
Atributo. Variable que pertenece a una instancia de clase. En Python, accesible vía self.atributo.
Atributo de clase. Pertenece a la clase, no a la instancia. Compartido entre todas las instancias. Definido fuera de __init__.
Abstract Base Class (ABC). Clase con métodos que las subclases deben implementar. Decorador @abstractmethod.
B
Boolean (bool). Tipo True/False. Heredado del cap. de PRO115. En Python, bool es subclase de int (True == 1).
C
Clase. Plantilla para crear objetos. class MiClase: define un tipo nuevo.
Comprehension. Sintaxis compacta para construir colecciones desde iterables: [x*2 for x in nums if x > 0].
Composición. Construir clases incluyendo otras como atributos, en vez de heredar. Más flexible que la herencia (Favor composition over inheritance).
Constructor. En Python, __init__. Llamado automáticamente al instanciar.
Context manager. Objeto que define __enter__ y __exit__. Usado con with. Garantiza cleanup (cerrar archivo, soltar lock).
D
Dataclass. Decorador @dataclass que genera automáticamente __init__, __repr__, __eq__. Reduce boilerplate.
Diccionario (dict). Estructura clave-valor con búsqueda promedio. En Python 3.7+ preserva orden de inserción.
Doblemente enlazada (lista). Cada nodo apunta al siguiente y al anterior. Borrado en .
E
Excepción. Error en runtime. Se atrapa con try/except. Subclases comunes: ValueError, TypeError, KeyError, FileNotFoundError, RuntimeError.
Exception chaining. Cuando una excepción ocurre durante el manejo de otra, Python encadena el contexto. raise X from Y es explícito.
Encapsulación. Esconder detalles internos de una clase. En Python, convención: prefijo _ (privado por convención), __ (name mangling).
F
Filter. filter(pred, iterable) devuelve un iterador con los elementos que cumplen pred. Equivale a [x for x in iterable if pred(x)].
Función de orden superior. Función que toma o devuelve otras funciones. map, filter, sorted con key=.
Función lambda. Función anónima de una expresión: lambda x: x*2. Útil como callback corto.
G
Generator. Función con yield. Produce valores lazy, uno a la vez. Perfecto para streams grandes.
Generator expression. Como list comprehension pero con paréntesis: (x*2 for x in nums). Lazy, no construye lista.
H
Hash. Mapeo de objetos a enteros. Necesario para usar como clave de dict o miembro de set. Inmutables son hashables (str, int, tuple); listas y dicts no.
Herencia. Una clase deriva de otra y obtiene sus atributos/métodos. class Hijo(Padre):. Múltiple herencia posible pero compleja (MRO).
I
Inmutable. Objeto que no se puede modificar después de creado: int, float, str, tuple, frozenset.
Instancia. Objeto creado a partir de una clase. Cada uno tiene sus propios atributos.
Iterable. Objeto con método __iter__ que produce un iterador. Lo recorrés con for.
Iterador. Objeto con método __next__ que devuelve el siguiente elemento o lanza StopIteration.
L
Lambda. Ver "función lambda".
List comprehension. Ver "comprehension".
M
Map. map(f, iterable) aplica f a cada elemento. Lazy en Python 3.
Método. Función definida dentro de una clase. Primer parámetro es self (la instancia).
Método estático. Sin self ni cls. Decorador @staticmethod. Útil cuando la lógica no depende de la instancia ni de la clase.
Método de clase. Primer parámetro es cls. Decorador @classmethod. Útil para constructores alternativos.
MRO (Method Resolution Order). Orden en el que Python busca métodos en cadenas de herencia. Algoritmo C3.
Mutable. Objeto modificable in-place: list, dict, set, instancias de clases (por defecto).
O
OOP (Object-Oriented Programming). Paradigma basado en clases, objetos, herencia, polimorfismo, encapsulación.
Override. Sobreescribir un método heredado en la subclase.
P
Polimorfismo. Distintas clases comparten interfaz: el código que usa la interfaz funciona con cualquiera. En Python: duck typing.
Property. Decorador @property que convierte un método en atributo computado de solo lectura. Combinable con @x.setter.
R
Recursión. Función que se llama a sí misma. Necesita caso base. En Python, límite de recursión por defecto ~1000 (sys.setrecursionlimit).
Re (regular expression). Módulo re para patrones de texto. Métodos clave: match, search, findall, sub, compile.
S
Self. Convención para el primer parámetro de un método: la instancia. No es palabra reservada, pero siempre se llama self.
Set. Conjunto sin duplicados. {1, 2, 3} o set([1, 2, 3]). Operaciones de teoría: |, &, -, ^.
Slicing. lista[a:b:c] devuelve sublista. Funciona con negativos: lista[::-1] invierte.
SOLID. 5 principios de diseño OOP: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion. Se profundiza en Análisis y Diseño.
T
Try/except/finally. Bloques de manejo de excepciones. else se ejecuta si no hubo excepción. finally siempre.
Tupla. Secuencia inmutable. (1, 2, 3). Útil como clave de dict (las listas no se pueden).
Type hint. Anotación de tipo: def f(x: int) -> str:. Python no las verifica en runtime — usá mypy o pyright para chequeo estático.
V
Variable de instancia. Pertenece a la instancia (self.x). Distinta a cada objeto.
Variable de clase. Pertenece a la clase. Compartida entre instancias. Cuidado con mutables como default.
Y
Yield. Convierte una función en generator. Pausa la ejecución y devuelve un valor; al iterar se reanuda.
Falta algo? Avisame.