Hướng dẫn how can a function return multiple values in python? - làm cách nào một hàm có thể trả về nhiều giá trị trong python?

Bài viết này mô tả cách trả về nhiều giá trị từ một hàm trong Python.

  • Trả về nhiều giá trị bằng dấu phẩy
  • Trả lại
    result = test()
    
    print(result)
    print(type(result))
    # ('abc', 100)
    # <class 'tuple'>
    
    1

Xem bài viết sau đây cho những điều cơ bản của các chức năng trong Python.

  • Xác định và gọi các chức năng trong Python (def, return)

Trả về nhiều giá trị bằng dấu phẩy

Trả lại

result = test()

print(result)
print(type(result))
# ('abc', 100)
# <class 'tuple'>
1

Xem bài viết sau đây cho những điều cơ bản của các chức năng trong Python.

def test():
    return 'abc', 100

Xác định và gọi các chức năng trong Python (def, return)

Trong Python, bạn có thể trả về nhiều giá trị bằng cách đơn giản là chúng được phân tách bằng dấu phẩy.
Built-in Types - Tuples — Python 3.7.4 documentation

  • Ví dụ, xác định một hàm trả về một chuỗi và số nguyên như sau:

result = test()

print(result)
print(type(result))
# ('abc', 100)
# <class 'tuple'>

Trong Python, các giá trị phân tách bằng dấu phẩy được coi là các bộ đếm không có dấu ngoặc đơn, ngoại trừ khi được yêu cầu bởi cú pháp. Vì lý do này, hàm trong ví dụ trên trả về một tuple với mỗi giá trị dưới dạng một phần tử.

print(result[0])
print(type(result[0]))
# abc
# <class 'str'>

print(result[1])
print(type(result[1]))
# 100
# <class 'int'>

Lưu ý rằng đó thực sự là dấu phẩy tạo ra một tuple, không phải dấu ngoặc đơn. Các dấu ngoặc đơn là tùy chọn, ngoại trừ trong trường hợp tuple trống hoặc khi chúng cần thiết để tránh sự mơ hồ của cú pháp. Các loại tích hợp - Tuples - Python 3.7.4 Tài liệu

# print(result[2])
# IndexError: tuple index out of range

Một tuple với một yếu tố yêu cầu một dấu phẩy trong Python

  • Mỗi phần tử có một loại được xác định trong hàm.

a, b = test()

print(a)
# abc

print(b)
# 100

Tất nhiên, việc chỉ định một chỉ mục vượt quá số lượng giá trị trả về được xác định làm tăng lỗi.

def test2():
    return 'abc', 100, [0, 1, 2]

a, b, c = test2()

print(a)
# abc

print(b)
# 100

print(c)
# [0, 1, 2]

Trả lại result = test() print(result) print(type(result)) # ('abc', 100) # <class 'tuple'> 1

Xem bài viết sau đây cho những điều cơ bản của các chức năng trong Python.

def test_list():
    return ['abc', 100]

result = test_list()

print(result)
print(type(result))
# ['abc', 100]
# <class 'list'>

Mã để trả về nhiều giá trị bằng danh sách:

Mục lục - Python trả về nhiều giá trị:

  1. Python trả về nhiều giá trị
  2. Các giá trị được phân tách bằng dấu phẩy (Bộ dữ liệu)
  3. Danh sách Python
  4. Từ điển Python
  5. Sử dụng lớp dữ liệu Python
  6. Hạn chế và cảnh báo - Python trả về nhiều giá trị

Python trả về nhiều giá trị:

Các chức năng được sử dụng để thực hiện một nhiệm vụ cụ thể mà rất có thể liên quan đến việc trả về một giá trị cụ thể. Tuy nhiên, một vài trường hợp sử dụng có thể yêu cầu bạn trả về hai hoặc nhiều giá trị. Trong các ngôn ngữ lập trình khác, mã để đạt được điều này có thể khá phức tạp nhưng Python cung cấp một vài phương pháp tiện dụng để trả về nhiều giá trị.

Hầu hết các phương pháp này liên quan đến việc sử dụng một loại dữ liệu thu thập để trả về các giá trị này. Chúng tôi đã xem xét kỹ tất cả chúng dưới đây.

Sử dụng các giá trị được phân tách bằng dấu phẩy (Tuples):

Trong phương pháp này, chúng tôi sử dụng Python để trả về nhiều giá trị bằng cách phân tách chúng bằng dấu phẩy. Python về cơ bản sử dụng một tuple để đạt được điều này.

Mã để đạt được điều này như sau:

#Returning Multiple Values using Tuples
def multiple():
    operation = "Sum" 
    total = 5+10
    return operation, total;

operation, total = multiple()

print(operation, total)
#Output = Sum 15

Một sự nhầm lẫn phổ biến ở đây là cú pháp của tuple đòi hỏi một cặp dấu ngoặc (). Mặc dù điều này là đúng, Python không phải lúc nào cũng yêu cầu dấu ngoặc để xác định một tuple.

Sử dụng danh sách Python:

Tương tự như các phương thức trước đó, danh sách cũng có thể được sử dụng để trả về nhiều giá trị. Trong trường hợp bạn không quen thuộc với danh sách, chúng là một tập hợp các mặt hàng. Chúng khá giống với các mảng tuy nhiên chúng có thể được sử dụng để lưu trữ các giá trị của các loại dữ liệu khác nhau.

Vì chúng là một tập hợp các mục, chúng tôi có thể thêm các giá trị vào danh sách và trả lại danh sách.

Mã để trả về nhiều giá trị bằng danh sách:

#Returning Multiple Values using List
def multiple():
    operation = "Sum" 
    total = 5+10
    return [operation, total];

values = multiple()

print(values)
#Output = ["Sum", 15]

Trong phương thức này, bạn sẽ phải sử dụng chỉ mục của danh sách để sử dụng các giá trị riêng lẻ.

Sử dụng từ điển Python:

Trong phương thức trước, việc truy cập một giá trị cụ thể sẽ là một rắc rối. Tuy nhiên, đây sẽ không phải là vấn đề trong khi sử dụng từ điển để trả về nhiều giá trị. Điều này là do chúng tôi có thể sử dụng tên khóa có liên quan và chúng có thể được truy cập dễ dàng.

Mã để làm như vậy như sau:

#Returning Multiple Values using Dictionary
def multiple():
    values = dict();
    values['operation'] = "Sum" 
    values['total'] = 5+10
    return values;

values = multiple()

print(values)
#Output = {'operation': 'Sum', 'total': 15}

Trong phương thức này, các giá trị được trả về có thể dễ dàng được truy cập trong các khóa của chúng.

Sử dụng lớp dữ liệu Python:

Trong phương thức này, chúng tôi sử dụng các lớp dữ liệu để trả về nhiều giá trị. Các lớp dữ liệu là một phương pháp thêm các phương thức cụ thể vào lớp do người dùng xác định. Phương pháp này đã được giới thiệu trong Python phiên bản 3.7.

Mã để làm như vậy như sau:

result = test()

print(result)
print(type(result))
# ('abc', 100)
# <class 'tuple'>
0

Trong phương thức này, các giá trị được trả về có thể dễ dàng được truy cập trong các khóa của chúng.

  • Sử dụng lớp dữ liệu Python:
  • Trong phương thức này, chúng tôi sử dụng các lớp dữ liệu để trả về nhiều giá trị. Các lớp dữ liệu là một phương pháp thêm các phương thức cụ thể vào lớp do người dùng xác định. Phương pháp này đã được giới thiệu trong Python phiên bản 3.7.
  • Hạn chế và cảnh báo - Python trả về nhiều giá trị
  • Hai phương pháp đầu tiên, mặc dù được sử dụng rộng rãi, phải được sử dụng một cách thận trọng vì chúng không có tên thích hợp để xác định các giá trị và do đó thường có thể dẫn đến lỗi.

Làm thế nào một hàm có thể trả về nhiều giá trị?

Nếu chúng ta muốn hàm trả về nhiều giá trị của cùng loại dữ liệu, chúng ta có thể trả lại con trỏ về mảng của các loại dữ liệu đó.Chúng ta cũng có thể làm cho hàm trả về nhiều giá trị bằng cách sử dụng các đối số của hàm.return the pointer to array of that data types. We can also make the function return multiple values by using the arguments of the function.

Điều này cho phép trả về nhiều giá trị từ một hàm trong Python?

Sử dụng các giá trị được phân tách bằng dấu phẩy (Tuples): Trong phương pháp này, chúng tôi sử dụng Python để trả về nhiều giá trị bằng cách phân tách chúng bằng dấu phẩy.Python về cơ bản sử dụng một tuple để đạt được điều này.Comma-separated values (Tuples): In this method, we use Python to return multiple values by simply separating them by commas. Python basically uses a tuple to achieve this.

Một hàm trong GO có thể trả về nhiều giá trị không?

Trong ngôn ngữ GO, bạn được phép trả về nhiều giá trị từ một hàm, sử dụng câu lệnh trả về.Hoặc nói cách khác, trong hàm, một câu lệnh trả về duy nhất có thể trả về nhiều giá trị.Loại giá trị trả về tương tự như loại tham số được xác định trong danh sách tham số.you are allowed to return multiple values from a function, using the return statement. Or in other words, in function, a single return statement can return multiple values. The type of the return values is similar to the type of the parameter defined in the parameter list.