0
respostas

[Sugestão] Pode ser indiferente parentizar ou não valores retornados por função e [b] uma função pode ser valor de parâmetro de outra função


#
# Um teste mostra que quando a versão de Python é: 
#    3.7.15 (default, Oct 12 2022, 19:14:55) 
#    [GCC 7.5.0]
# não há diferença entre parentizar ou não parentizar 
# múltiplos valores retornados por uma função 
#----------------------------------------------------------

#
# declarar lista de valores inteiros 
#

lista = [ 1 , 2 , 3  , 4 ]

#
# ecoar lista
#

print ( ' lista é ' , lista )
print ()

#----------------------------------------------------------

# 
# definir as opcoes de parentizacao
# de retorno de funcao
#

com_parentizacao = "retorno com parentizacao"

sem_parentizacao = "retorno sem parentizacao"

#----------------------------------------------------------

# 
# funcao que retorna 
# soma , contagem e media 
# de elementos de lista
#

def media_de_lista ( lista , opcao_de_parentizacao ) :

    soma = sum ( lista ) 

    contagem = len ( lista ) 

    media = soma / contagem 

    if ( opcao_de_parentizacao == com_parentizacao ) : 

        return soma , contagem , media  

    if ( opcao_de_parentizacao == sem_parentizacao ) : 

        return ( soma , contagem , media )



#----------------------------------------------------------

#
# funcao específica para testar o efeito de parentizacao 
# sobre uma tupla retornada por uma funcao "quase genérica"
#

def testar_retorno_de_funcao ( funcao , lista , opcao_de_parentizacao ) :

      #
      # ecoar opcao de parentizacao 
      #

      print ( ' se a funcao tem ' , opcao_de_parentizacao , ' de múltiplos valores')
      print ( )

      # 
      # retornar tupla por meio de uma chamada de funcao
      # e
      # ecoar tupla retornada 
      # 

      retorno = funcao ( lista , opcao_de_parentizacao )

      print ( ' o valor retornado é ' , retorno ) 
      print ( )  

#----------------------------------------------------------

#
# ecoar versao de python
#


import sys
versao_python = sys.version

mensagem = 'Um teste mostra que quando a versão de Python é: '

print ( mensagem ) 
print ()
print ( versao_python )
print ()

opcao_de_parentizacao = com_parentizacao
testar_retorno_de_funcao ( media_de_lista , lista , opcao_de_parentizacao )

opcao_de_parentizacao = sem_parentizacao
testar_retorno_de_funcao ( media_de_lista , lista , opcao_de_parentizacao )
#
# A escrita realizada pelo código é:
#

 lista é  [1, 2, 3, 4]

Um teste mostra que quando a versão de Python é: 

3.7.15 (default, Oct 12 2022, 19:14:55) 
[GCC 7.5.0]

 se a funcao tem  retorno com parentizacao  de múltiplos valores

 o valor retornado é  (10, 4, 2.5)

 se a funcao tem  retorno sem parentizacao  de múltiplos valores

 o valor retornado é  (10, 4, 2.5)