ExpertiDict

Python · Avançado · Português · Técnico

parâmetros de tipo

/paˈɾɐmetɾus dʒi ˈtʃipu/substantivo

Sintaxe do Python 3.12 que declara variáveis de tipo direto na função ou classe, como def f[T](x: T), sem importar TypeVar nem herdar de Generic.

Onde usar

Aparece em código novo com tipos genéricos, como contêineres e utilitários, deixando a assinatura mais enxuta. Em code review, equipes que ainda suportam o Python 3.11 não podem usá-la.

Em código

class Pilha[T]:
  def __init__(self):
    self.itens: list[T] = []
  def push(self, x: T) -> None:
    self.itens.append(x)
def primeiro[T](xs: list[T]) -> T:
  return xs[0]
print(primeiro([1, 2]))  # 1

Exemplos

Com parâmetros de tipo, a classe genérica fica bem mais enxuta.

Esse projeto ainda roda no 3.11, então não dá pra usar parâmetros de tipo.

Cuidado

Não funciona em versões anteriores à 3.12; nelas, continue com TypeVar e Generic.

Sinônimos

sintaxe de generics

Veja também

Todos os termos de Python