Python: Fundamentos de POO
59 cards · 🇺🇸 English → 🇪🇸 Español
Clases, herencia y conceptos fundamentales de la programación orientada a objetos en Python.
Study all 59 cards for free
Flashcards, quizzes, pixel-art games and a daily review that remembers for you.
Try the first 10 cards
1 / 10Class in Python
Tap the card for the answer · swipe right if you knew it, left if not
Already have an account? Sign in
Cards
- 1Class in PythonUn molde para crear objetos que agrupa datos (atributos) y funcionalidad (métodos). Se define con la palabra clave 'class'.
- 2Define a classclass ClassName: def __init__(self, param): self.attribute = param
- 3InstanceUn objeto creado a partir de una clase. Cada instancia tiene sus propios datos, pero comparte los métodos con otras instancias de la misma clase.
- 4SelfReferencia a la instancia actual. Primer parámetro de los métodos de instancia. Permite acceder a atributos y métodos. Es una convención, no una palabra clave.
- 5__init__Método constructor que se llama al crear una nueva instancia. Inicializa los atributos de instancia. Ejemplo: def __init__(self, name): self.name = name
- 6Instance attributesVariables propias de cada instancia. Se definen en __init__ u otros métodos. Se accede a ellas mediante self.attribute_name.
- 7Class attributesVariables compartidas por todas las instancias de una clase. Se definen directamente en el cuerpo de la clase, no en métodos. Ejemplo: class Dog: species = 'Canis familiaris'
- 8instance vs class attributesLos atributos de instancia son propios de cada instancia (self.attr). Los atributos de clase se comparten entre todas las instancias (ClassName.attr). La búsqueda en la instancia comprueba primero la instancia y luego la clase.
- 9Instance methodsFunciones definidas en una clase que operan sobre los datos de la instancia. Reciben self como primer parámetro. Ejemplo: def bark(self): return f'{self.name} says woof!'
- 10Class methodsMétodos que operan sobre la propia clase, no sobre instancias. Se decoran con @classmethod. Reciben cls como primer parámetro. Ejemplo: @classmethod def from_string(cls, string):
- 11Static methodsMétodos que no acceden ni a la instancia ni a la clase. Se decoran con @staticmethod. No reciben parámetro self/cls. Funciones utilitarias agrupadas dentro de la clase.
- 12InheritanceMecanismo que permite que una clase herede atributos y métodos de otra clase. La clase hija extiende a la padre. Sintaxis: class Child(Parent):
- 13Method overridingLa clase hija redefine un método de la clase padre. Al llamarlo sobre una instancia de la hija, se ejecuta la versión de la hija. Se puede llamar a la versión del padre con super().
- 14Super()Función integrada para llamar a métodos de la clase padre. Habitual en __init__: super().__init__(args). Gestiona correctamente la herencia múltiple.
- 15Multiple inheritanceUna clase hereda de varias clases padre. Sintaxis: class Child(Parent1, Parent2). La resolución de métodos sigue el MRO (Method Resolution Order).
- 16MRO (Method Resolution Order)Orden en el que Python busca métodos en la jerarquía de herencia. Se consulta con ClassName.mro() o ClassName.__mro__. Usa la linealización C3.
- 17PolymorphismDistintas clases pueden usarse a través de la misma interfaz. Objetos de clases diferentes responden de forma distinta a la misma llamada a método. En Python se manifiesta como duck typing.
- 18EncapsulationAgrupar datos y métodos en una clase. Controlar el acceso al estado interno. Se usan propiedades y atributos privados.
- 19Private attributes in PythonPor convención, se anteponen guiones bajos: _private o __private. __name activa el name mangling (_ClassName__name). No son realmente privados, es solo una convención.
- 20Name mangling__attribute se convierte en _ClassName__attribute. Ayuda a evitar conflictos de nombres en la herencia. No es una medida de seguridad, solo una convención.
- 21@propertyDecorador que hace que un método sea accesible como un atributo. Permite lógica de getter/setter manteniendo la sintaxis de atributo. Ejemplo: @property def name(self): return self._name
- 22Create a setter with @property@property para el getter, y luego @attribute.setter para el setter. Ejemplo: @property def name(self): return self._name @name.setter def name(self, value): self._name = value
- 23__str__Método mágico que define la representación en cadena legible para humanos. Lo invocan str() y print(). Ejemplo: def __str__(self): return f'{self.name}'
- 24__repr__Método mágico que define la representación en cadena para desarrolladores. Debe ser inequívoca, idealmente código Python válido. Lo invoca repr(). Sirve de respaldo para __str__.
- 25__str__ vs __repr____str__: legible para el usuario final. __repr__: inequívoco, para desarrolladores y depuración. __repr__ sirve de respaldo si falta __str__.
- 26__len__Define el comportamiento de len(). Ejemplo: def __len__(self): return len(self.items)
- 27__getitem__Permite la indexación/slicing: obj[key]. Ejemplo: def __getitem__(self, index): return self.items[index]
- 28__setitem__Permite la asignación por índice: obj[key] = value. Ejemplo: def __setitem__(self, key, value): self.items[key] = value
- 29__eq__Define la comparación de igualdad con ==. Ejemplo: def __eq__(self, other): return self.id == other.id
- 30Comparison magic methods__eq__ (==), __ne__ (!=), __lt__ (<), __le__ (<=), __gt__ (>), __ge__ (>=). Definen cómo se comparan los objetos.
And 29 more cards. Study the whole deck free
Articles about this deck
More Programming decks
See all- 🐍
Python: OOP Fundamentals
59 cards · 🇺🇸 English
Classes, inheritance, and core object-oriented Python concepts.
- 🐍
Python : avancé (décorateurs, lambda et exceptions)
97 cards · 🇺🇸 English
Décorateurs, fonctions lambda, gestion des exceptions et autres concepts Python avancés.
- 🐍
Python : structures de données et compréhensions
125 cards · 🇺🇸 English
Méthodes de listes/dictionnaires/ensembles ainsi que les compréhensions de listes, de dictionnaires et de générateurs.
- 🐍
Python: Fortgeschritten (Decorators, Lambda & Exceptions)
97 cards · 🇺🇸 English
Decorators, Lambda-Funktionen, Exception-Handling und weitere fortgeschrittene Python-Konzepte.
- 🐍
Python: Funciones integradas
77 cards · 🇺🇸 English
Funciones integradas esenciales que todo desarrollador Python debería conocer.
- 🐍
Python : fondamentaux de la POO
59 cards · 🇺🇸 English
Classes, héritage et concepts fondamentaux de la programmation orientée objet en Python.
