Crear un objeto tipo en Python similar al objeto tipo en TypeScript
¿Cómo puedo crear estos tipos de datos en Python?
Estos tipos fueron definidos en TypeScript y quiero recrearlos en Python. ¿Cómo puedo hacerlo en Python de manera fácil y correcta?
export type Category =
'painting'
| 'work on paper'
| 'print'
| 'ceramic'
| 'installation'
| 'sculpture'
| 'textile'
| 'photograph'
| 'other'
export type NumberedCategory = `${Category}-${number}`
export type Lexicon = { term: string, weight: number }
export type Score = { name: string, score: number, contributors: string[] }
¡Gracias!
Respuesta #1
No estoy muy familiarizado con TypeScript, pero en Python puedes crear types creando clases.
Creé un tipo Score igual al de tu ejemplo dentro de un REPL de ipython como ejemplo.
In [1]: class Score:
...: def __init__(self, name: str, score: int, contributors: list):
...: self.name = name
...: self.score = score
...: self.contributors = contributors
In [2]: isinstance(Score, type)
Out[2]: True
In [3]: score = Score("ten", 10, ["contributor1", "contributor2"])
In [4]: isinstance(score, Score)
Out[4]: True
In [5]: type(score)
Out[5]: __main__.Score
In [6]: type(Score)
Out[6]: type
