typestar

Introspección en Python

Preguntarle a un objeto por sí mismo: firma, docstring, código fuente, miembros.

import inspect


def puntaje(tpm: float, meta: float = 90.0, *, estricto: bool = False) -> int:
    """Estrellas de un intento."""
    return 3 if tpm >= meta else 1


firma = inspect.signature(puntaje)
print(firma)
print([p.name for p in firma.parameters.values()])
print(firma.parameters["meta"].default)
print(inspect.getdoc(puntaje))
print(len(inspect.getsource(puntaje).splitlines()))

Cómo funciona

  1. firma lee los parámetros y sus valores por defecto.
  2. getdoc devuelve el docstring, ya limpio.
  3. getsource devuelve el código, cuando está disponible.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
381
Tokens
105
Ritmo de tres estrellas
110 tpm

Al ritmo de tres estrellas de 110 tokens por minuto, este intento toma unos 57 segundos.

Escribe este fragmento

Paso 2 de 4 en Medición e introspección; paso 36 de 41 en Herramientas de dominio.

← Anterior Siguiente →