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.
Nội dung chính
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:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
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!