Devolviendo múltiples valores en Python

En Python, podemos devolver múltiples valores de una función. Las siguientes son diferentes formas

1) Usando Object: Esto es similar a C/C++ y Java, podemos crear una clase (en C, struct) para contener múltiples valores y devolver un objeto de la clase.

# A Python program to return multiple 
# values from a method using class
class Test:
    def __init__(self):
        self.str = "geeksforgeeks"
        self.x = 20   
  
# This function returns an object of Test
def fun():
    return Test()
      
# Driver code to test above method
t = fun() 
print(t.str)
print(t.x)

Producción:

geeksforgeeks
20

A continuación se presentan métodos interesantes para alguien que cambia el mundo de C++/Java.

2) Uso de tupla: una tupla es una secuencia de elementos separados por comas. Se crea con o sin(). Las tuplas son inmutables. Ver esto para detalles de tupla y lista.

# A Python program to return multiple 
# values from a method using tuple
  
# This function returns a tuple
def fun():
    str = "geeksforgeeks"
    x   = 20
    return str, x;  # Return tuple, we could also
                    # write (str, x)
  
# Driver code to test above method
str, x = fun() # Assign returned tuple
print(str)
print(x)

Producción:

geeksforgeeks
20

3) Usar una lista: una lista es como una array de elementos creados con corchetes. Son diferentes de las arrays, ya que pueden contener elementos de diferentes tipos. Las listas se diferencian de las tuplas en que son mutables.

# A Python program to return multiple 
# values from a method using list
  
# This function returns a list
def fun():
    str = "geeksforgeeks"
    x = 20   
    return [str, x];  
  
# Driver code to test above method
list = fun() 
print(list)

Producción:

['geeksforgeeks', 20]

4) Uso de un diccionario: un diccionario es similar a hash o map en otros idiomas. Vea esto para detalles del diccionario.

# A Python program to return multiple 
# values from a method using dictionary
  
# This function returns a dictionary
def fun():
    d = dict(); 
    d['str'] = "GeeksforGeeks"
    d['x']   = 20
    return d
  
# Driver code to test above method
d = fun() 
print(d)

Producción:

{'x': 20, 'str': 'GeeksforGeeks'}

 
5) Uso de la clase de datos (Python 3.7+): en Python 3.7 y superior, la clase de datos se puede usar para devolver una clase con métodos únicos agregados automáticamente. El módulo Clase de datos tiene un decorador y funciones para agregar automáticamente métodos especiales generados como __init__() y __repr__() en las clases definidas por el usuario.

from dataclasses import dataclass
  
@dataclass
class Book_list:
    name: str
    perunit_cost: float
    quantity_available: int = 0
          
    # function to calculate total cost    
    def total_cost(self) -> float:
        return self.perunit_cost * self.quantity_available
      
book = Book_list("Introduction to programming.", 300, 3)
x = book.total_cost()
  
# print the total cost
# of the book
print(x)
  
# print book details
print(book)
  
# 900
Book_list(name='Python programming.',
          perunit_cost=200,
          quantity_available=3)

Producción:

900
Book_list(name='Introduction to programming.', perunit_cost=300, quantity_available=3)
Book_list(name='Python programming.', perunit_cost=200, quantity_available=3)

Referencia:
http://stackoverflow.com/questions/354883/how-do-you-return-multiple-values-in-python

Este artículo es una contribución de Shubham Agrawal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *