Basic Objects Flashcards
Crear una clase x
class x:
Por defecto clase para crear objetos
Definir funcion de clase para inicializar objetos con atributos a, b, c; a dado por cliente, b numero n, c booleano false
def __init__(self, a):
- > self._a = a
- > self._b = n
- > self._c = False
Definir funcion x de clase para ejecutar un codigo y
def x(self): -> y
Crear o editar un objeto x de la clase y con los atributos a, b
x = y(a, b)
Imprimir valor de atributo a de objeto x
print(x.a)
Editar o añadir un atributo a de un objeto x con un valor b
x.a = b
Usar campos de reemplazamiento para imprimir los atributos a b del objeto x y a b del objeto y
print("{0.a} {0.b} {1.a} {1.b}".format(x, y)) o print("{} {} {} {}".format(x.a, x.b, y.a , y.b))
Llamar a funcion x de clase y para objeto z
z.x()
o
y.x(z)
Asignar atributo global a con valor b de una clase, para todos los objetos
a = b
Editar o añadir un atributo global a de una clase x con un valor b
x.a = b
Incluir docstring x para describir clase o funcion de clase
”"”x”””
Docstring con reglas de estilo adecuadas para descripción a, atributos o argumentos b1 b2 b3, metodos c1 c2
"""a -> Attributes/Args: -> -> b1 (tipo): desc -> -> b2 (tipo): desc -> -> b3 (tipo): desc -> Methods: -> -> c1 (tipo): desc -> -> c2 (tipo): desc """
Reglas de estilo adecuadas para nombramiento de clases
Palabras con primera letra mayuscula unidas sin espacio ni barrabaja
Definir funcion estatica x de clase para ejecutar un codigo z
@staticmethod def x(): -> z
Llamar a una funcion estatica x de clase y
y.x()
o
self.x()
solo dentro de la propia clase
Declarar clases, metodos, funciones o variables privadas x en un modulo
_x
Declarar variables x para que sean renombradas y no entren en conflicto
__x
Llamar a funcion x para objeto y con parametro a
y.z(a)
Definir funcion x de clase, con atributos o argumentos a, b con valores por defecto a1 y b1
def x(self, a=a1, b=b1):
Hacer llamadas entre clases sin entrar en jerarquia circular
Llamar desde la clase mas general a la mas especifica
Imprimir los atributos a, a, b, b de las clases x, y, y, z respectivamente, en campos de reemplazamiento
print(“{0.a}{1.a}{1.b}{2.b}”.format(x, y, z))
Imprimir documentacion de una clase x
print(x.__doc__)
Imprimir documentacion de una funcion x de una clase y
print(y.x.__doc__)
Crear un getter privado sencillo para un atributo privado a
def _get_a(self): -> return self._a
Crear un setter privado sencillo para un atributo privado a con nuevo valor b
def _set_a(self, b): -> self._a = b
Crear una propiedad para el atributo a a partir de sus getters y setters privados sencillos
a = property(_get_a, _set_a)
Convertir un getter a en propiedad directamente
@property
def a(self):
-> (…)
Convertir un setter privado a con nuevo valor b en propiedad directamente
@a.setter
def a(self, b):
-> (…)
Definir funcion de clase para devolver x de un objeto al ser llamado
def \_\_str\_\_(self): -> return x
Refactorizar variables privadas detro de strings
Find > Replace Regex activado Buscar (\{\d\.) Sustituir con $1_ (en IntelliJ IDEA)
Maneras de relacionar varias clases de objetos
Conteniendo, objetos de una clase en objetos de otras
Heredando, atributos, funciones, etc de una clase a otras
Componiendo o agregando, los atributos de una clase como objetos de otras
Crear una clase a, heredera de una clase b
class a(b):
Definir funcion de clase para inicializar objetos, con atributos a, b, c heredados de otra clase; a dado por cliente, b numero n, c booleano false
def \_\_init\_\_(self, a): -> super().\_\_init\_\_(a=a, b=n, c=False) o -> super(x, self).\_\_init\_\_(a=a, b=n, c=False) o -> x.\_\_init\_\_(self, a=a, b=n, c=False) Donde x es la clase
Definir funcion x de clase, heredada de otra clase, con atributo a dado por cliente
def x(self, a): -> super().x(a=a) o -> super(y, self).x(a=a) o -> y.x(self, a=a) Donde y es la clase
Importar clases x y z de un documento a
from a import x, y, z
Definir funcion de clase para inicializar objetos, con atributos a, b, c compuestos por objetos de otras clases x, y, z respectivamente
def __init__(self):
- > self._a = x()
- > self._b = y()
- > self._c = z()
Agregar objetos a, b, c de clases x, y, z a atributos de nuevo objeto d de la clase w
a = x() b = y() c = z() d = w(a, b, c)