Solución

@maiquez·5/10/2026TypeScript
solution.tsTypeScript
TYPE_MAP = {"int": int, "str": str, "float": float}


class Typed:
    def __init__(self, expected_type):
        self.expected_type = expected_type

    def __set_name__(self, owner, name):
        self.name = name
        self.storage = f"_{name}"

    def __get__(self, instance, owner):
        if instance is None:
            return self
        return getattr(instance, self.storage, None)

    def __set__(self, instance, value):
        # Verifica que el tipo sea correcto; lanza TypeError si no lo es
        if isinstance(value, self.expected_type):
            if isinstance(value, int) or isinstance(value, str) or isinstance(value, float):
                return True
        else:
            raise TypeError(f"{value} is not {self.expected_type}")
            return False


class Container:
    value = Typed(int)


def test_typed(value, expected_type_str):
    expected_type = TYPE_MAP[expected_type_str]
    c = Container()
    c.__class__.value = Typed(expected_type)
    try:
        c.value = value
        return True
    except TypeError:
        return False
0respuestas
Respuestas

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.