Tag: PYTHON-TYPING
Estoy creando manualmente un archivo pyi para una de mis clases y uno de los tipos de retorno de una de sus funciones depende de un enumerado que hice en otro archivo. Extractos relevantes del código: Board.pyi class Board: def access(self, i: int, j: int) -> Color: … Donde Color . . . Read more
Quiero importar Concatenate desde typing, que funciona perfectamente en 3.10, pero si intento importarlo en Python 3.8, obtengo un error de importación. 3.10 >>> from typing import Concatenate >>> 3.8 >>> from typing import Concatenate Traceback (most recent call last): File “<stdin>”, line 1, in <module> ImportError: no se puede . . . Read more
En el código a continuación, ¿cómo puedo tener my_dict_keys_type y my_dict_values_type sin actualizarlos manualmente cada vez que cambie el diccionario? my_dict = { “a”: 1, “b”: “2”, “c”: True } my_dict_keys_type = Union[Literal[“a”], Literal[“b”], Literal[“c”]] my_dict_values_type = Union[int, str, bool] def get(key: my_dict_keys_type) -> my_dict_values_type: return my_dict[key] Necesito que el . . . Read more
Como ejemplo de juguete, usemos la secuencia de Fibonacci: def fib(n: int) -> int: if n < 2: return 1 return fib(n – 2) + fib(n – 1) Por supuesto, esto bloqueará la computadora si intentamos: print(fib(100)) Así que decidimos agregar memoización. Para mantener la lógica de fib clara, decidimos . . . Read more
Déjame explicarlo con un ejemplo: “`python import typing as t from dataclasses import dataclass describe our protocols class ID(t.Protocol): “Este protocolo describe algún tipo de ID.” def hash(self) -> int: raise NotImplementedError def eq(self, other) -> bool: raise NotImplementedError def str(self) -> str: raise NotImplementedError class ObjectWithID(t.Protocol): “Este protocolo describe . . . Read more