Trong Python, chúng ta có thể trả về nhiều giá trị từ một hàm, có nhiều cách để làm được điều này, chúng ta sẽ cùng tìm hiểu ngay sau đây.

1. Sử dụng Object – đối tượng

Cách này tương tự như trong ngôn ngữ C/C++ và Java, chúng ta có thể tạo ra một class (trong C là struct) để lưu giữ được nhiều giá trị, và trả về một đối tượng của class đó.

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# A Python program to return multiple  
# values from a method using class 
class Test: 
    def __init__(self): 
        self.str = "cafedev.vn"
        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) 

Kết quả in ra là:

cafedev.vn
20

Tiếp theo, một số phương pháp thú vị hơn nữa để trả về nhiều giá trị, dành cho những người chuyển từ C++/Java sang Python sẽ được trình bày.

2. Sử dụng Tuple

Tuple là một chuỗi các phần tử được phân tách nhau bởi dấu phẩy. Nó có thể được tạo ra bằng cách sử dụng hoặc không sử dụng () đều được. Các Tuples đều là immutable – không thay đổi được. Ví dụ dưới đây sẽ mô tả cụ thể về tuple và list (danh sách).

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

# A Python program to return multiple  
# values from a method using tuple 
  
# This function returns a tuple 
def fun(): 
    str = "cafedev.vn"
    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) 

Kết quả in ra là:

cafedev.vn
20

3. Sử dụng List

List là một kiểu dữ liệu giống với mảng các phần tử, được tạo ra bằng cặp dấu ngoặc vuông. List khác với array ở chỗ, chúng có thể chứa được các phần tử thuộc nhiều kiểu dữ liệu khác nhau. List thì khác với tuple, bởi vì list là mutable (thay đổi được).

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------

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

Kết quả in ra:

['cafedev.vn', 20]

4. Sử dụng Dictionary

Dictionary trong Python tương tự với kiểu dữ liệu hash hoặc kiểu map trong các ngôn ngữ khác, ví dụ dưới đây sẽ mô tả cách sử dụng dictionary để trả về nhiều kết quả từ một hàm:


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

Kết quả in ra là:

{'x': 20, 'str': 'cafedev.vn'}

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!