Python retorna vários valores
Com Python, podemos retornar vários valores de uma só vez. Obviamente, a maioria das funções em Python retorna um único valor, geralmente o resultado do trabalho realizado por essa função. Neste artigo, você aprenderá que também pode retornar vários valores em Python e não precisa de um dicionário, lista ou classe de dados para fazer isso.
Índice
Retorne vários valores com uma tupla
Tudo o que você precisa fazer é listar seus valores após a instrução return, separados por vírgulas. Aqui está um exemplo de como retornar vários valores e como atribuí-los a várias variáveis de uma só vez:
def get_user(id): # fetch user from database # .... return name, birthdate name, birthdate = get_user(4)
O que estamos realmente fazendo aqui é retornar uma tupla. Poderíamos ter escrito
return (name, birthdate)
também, com o mesmo efeito. E se você está se perguntando se pode retornar mais de dois valores desta forma:sim, você pode! A vantagem mais óbvia de retornar vários valores em Python usando uma tupla é que podemos atribuir diretamente o resultado a várias variáveis. É super limpo e conciso, assim como o Python deveria ser.
Formas alternativas em Python para retornar vários valores
Usar tuplas para retornar vários valores em Python é bom para um número limitado de valores. Como podemos descompactá-los diretamente em variáveis claramente nomeadas, isso resulta em um código conciso e muito legível.
No entanto, depois de passar de 2 ou 3 valores, você deve examinar uma classe de dados para manter seu código limpo e legível. Uma classe de dados é essencialmente uma classe regular, anotada com
@dataclass
para dar-lhe alguma funcionalidade extra útil. Se uma classe de dados não for uma opção porque você está executando uma versão mais antiga do Python, por exemplo, você também pode considerar retornar:
- um dicionário Python,
- uma lista Python,
- ou uma classe regular (objeto).
O que é melhor depende do tipo de dados que você está retornando. Se os dados se encaixam bem em uma lista, use uma lista. Caso os dados tenham chaves e valores, use um dicionário. Se seus dados forem mais complexos, talvez você precise colocar várias listas dentro de um dicionário. Apenas lembre-se, em algum momento, será mais limpo usar uma classe (dados).
Continue aprendendo
- Saiba tudo sobre tuplas e dicionários Python
- Minha introdução às funções
- Truques de funções Python mais avançados em nossas funções Python detalhadas
python