[Curso de Python] Funções que Retornam Valores - Parte 2/2
por
em 18-08-2010 às 09:02 (6535 Visualizações)
Antes de prosseguir leia os artigos anteriores aqui
Olá pessoal! Hoje não tem muito blah blah blah, vamos fechar o conceito do "comando" return para podermos ver conceitos mais avançados com as funções em Python.
Funções que Retornam Valores - Parte 2/2
Conformefalamos na última aula, o comando return pode retornar qualquer tipo de dados. Diferente de outras linguagens o Python não restringe o tipo da variável de retorno, como ocorre em linguagens como C/C++, Java e etc. Vamos a um exemplo simples:
Como mostrado acima, uma única função pode retornar diversos diversos tipos diferentes.Código :>>> def retorna(tipo): ... if tipo == 'int': ... return 1 ... elif tipo == 'long': ... return 1L ... elif tipo == 'float': ... return 1.5 ... elif tipo == 'complex': ... return 1 + 2j ... elif tipo == 'list': ... return [1,2,3] ... elif tipo == 'tuple': ... return (1,2,3) ... elif tipo == 'dict': ... return {'a':1, 'b':2} ... >>> >>> retorna('int') 1 >>> retorna('long') 1L >>> retorna('float') 1.5 >>> retorna('complex') (1+2j) >>> retorna('list') [1, 2, 3] >>> retorna('tuple') (1, 2, 3) >>> retorna('dict') {'a': 1, 'b': 2} >>>
Muitas pessoas se espantam quando vêem códigos em Python que retornam mais de uma variável. Devido à maleabilidade do Python, você pode fazer códigos estranhos como esse:
Quando olhamos rapidamente o código acima temos q impressão de que o comando return no Python é capaz de retornar mais de uma variável (nesse exemplo o booleano True e o inteiro 2), mas isso não passa de uma "ilusão" pois quando chamamos a função e passamos o seu valor para uma única variável, vemos que na verdade foi retornado uma tupla com dois valores. Dessa forma, utilizar o "return True, 2" é o mesmo que "return (True, 2)". Pessoalmente prefiro utilizar os parênteses para ficar claro que aquilo é uma tupla, não correndo o risco de gerar uma dupla interpretação sobre o código.Código :>>> def teste(): ... return True, 2 ... >>> flag, numero = teste() >>> flag True >>> numero 2 >>> x = teste() >>> print x (True, 2) >>> type(x) <type 'tuple'> >>>
Até a próxima pessoal...
Comentários
+ Enviar Comentário