Não entendi muito bem o funcionamento do __getitem__
, ele serve apenas para o objeto ter alguns comportamentos de uma lista especificamente ou isso é algo que eu mesmo defino nele? Para que exatamente serve ele?
Não entendi muito bem o funcionamento do __getitem__
, ele serve apenas para o objeto ter alguns comportamentos de uma lista especificamente ou isso é algo que eu mesmo defino nele? Para que exatamente serve ele?
Oi Armando! Como vai?
O __getitem__
é um "método dunder" do Python. Os métodos dunder, são métodos pré-definidos, para que sejam facilmente reconhecidos por qualquer um que olhe um código escrito em Python.
O __getitem__
em especial, serve para tornar um objeto iterável, ou seja, para que consigamos percorrê-lo item por item.
Por padrão, independente de guardar mais de um argumento, um objeto não é iterável, como mostra o professor durante a aula. Esse método serve para que consigamos obter o comportamento de percorrê-lo como uma lista, sem que precisemos herdar como classe o tipo lista inteiro, ou herdar qualquer outro iterável. O comportamente de iteração pertence não somente a lista, mas outros tipos como tuplas, strings e dicionário.
De certa maneira, o__getitem__
funciona "por causa" do que você escreve dentro dele, entretanto é uma convenção que você defina ele dessa maneira, para que fique mais "phytônico".
É bem provável que você poderia fazer isso de outras maneiras, pois faz parte da filosofia do Python deixar opções em aberto para o programador, mas a boa prática é que seja feita desse jeito, para que qualquer um que abrir o seu código possa entender o que foi feito.
Ficou alguma dúvida? Me avise que posso explicar de outras maneiras!
Bons Estudos! =)
Agora eu entendi! Muito obrigado pela ajuda.