Métodos dunder de contenedor en Python
Enseñar a una clase a comportarse como un contenedor integrado.
class ListaDeReproduccion:
def __init__(self, *songs):
self.songs = list(songs)
def __len__(self):
return len(self.songs)
def __getitem__(self, i):
return self.songs[i]
def __contains__(self, titulo):
return titulo in self.songs
mezcla = ListaDeReproduccion("Africa", "Take On Me", "Hey Ya")
conteo = len(mezcla)
apertura = mezcla[0]
la_tiene = "Hey Ya" in mezcla
Cómo funciona
__len__impulsalen()sobre el objeto.__getitem__habilita la indexación con[].__contains__responde al operadorin.
Palabras clave y builtins usados aquí
classdeflenlistreturnself
El intento, en números
- Líneas
- 18
- Caracteres a escribir
- 368
- Tokens
- 97
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 55 segundos.
Paso 3 de 5 en Protocolos y gestores de contexto; paso 17 de 53 en Python pythónico.