Bạn có thể trả về nhiều giá trị từ một hàm trong Python không?

1] Sử dụng đối tượng. Điều này cũng tương tự với C/C++ và Java, chúng ta có thể tạo một lớp [trong C là struct] để chứa nhiều giá trị và trả về một đối tượng của lớp

# Một chương trình Python trả về nhiều
# giá trị từ một phương thức sử dụng lớp
lớp kiểm tra
def __init__[bản thân]
bản thân. str = "thợ săn"
bản thân. x = 20

# Hàm này trả về một đối tượng Test
chắc chắn vui vẻ[]
trả lại Bài kiểm tra []

# Mã trình điều khiển để kiểm tra phương pháp trên
t = vui vẻ[]
in [t. str]
in [t. x]
đầu ra

thợ cắt tóc
20
Dưới đây là các phương pháp thú vị dành cho ai đó chuyển đổi thế giới C++/Java

2] Sử dụng Tuple. Tuple là một chuỗi các mục được phân tách bằng dấu phẩy. Nó được tạo ra có hoặc không có []. Tuples là bất biến. Xem phần này để biết chi tiết về Tuple và danh sách

# Một chương trình Python trả về nhiều
# giá trị từ một phương thức sử dụng tuple

# Hàm này trả về một bộ
chắc chắn vui vẻ[]
str = "thợ săn"
x = 20
trả về str, x;
# viết [str, x]

# Mã trình điều khiển để kiểm tra phương pháp trên
str, x = fun[] # Gán bộ trả về
in[str]
in[x]
đầu ra

thợ cắt tóc
20

3] Sử dụng danh sách. Một danh sách giống như một mảng các mục được tạo bằng dấu ngoặc vuông. Chúng khác với mảng vì chúng có thể chứa các mục thuộc các loại khác nhau. Danh sách khác với bộ dữ liệu vì chúng có thể thay đổi

# Một chương trình Python trả về nhiều
# giá trị từ một phương thức sử dụng danh sách

# Hàm này trả về một danh sách
chắc chắn vui vẻ[]
str = "thợ săn"
x = 20
trả về [str, x];

# Mã trình điều khiển để kiểm tra phương pháp trên
danh sách = vui vẻ[]
in [danh sách]
đầu ra

['prutor', 20]

4] Sử dụng từ điển. Từ điển tương tự như hàm băm hoặc bản đồ trong các ngôn ngữ khác. Xem cái này để biết chi tiết về từ điển

# Một chương trình Python trả về nhiều
# giá trị từ một phương thức sử dụng từ điển

# Hàm này trả về một từ điển
chắc chắn vui vẻ[]
d = dict[];
d['str'] = "thảo mộc. ai"
d['x'] = 20
trả lại d

# Mã trình điều khiển để kiểm tra phương pháp trên
d = vui vẻ[]
in[d]
đầu ra

{'x'. 20, 'str'. 'thợ cắt tỉa. ai'}

5] Sử dụng Lớp dữ liệu [Python 3. 7+]. Trong Trăn 3. 7 trở lên, Lớp dữ liệu có thể được sử dụng để trả về một lớp với các phương thức duy nhất được thêm tự động. Mô-đun Lớp dữ liệu có một trình trang trí và các chức năng để tự động thêm các phương thức đặc biệt đã tạo, chẳng hạn như __init__[] và __repr__[] trong các lớp do người dùng định nghĩa

Khi bạn trả về nhiều giá trị bằng cách sử dụng [các] dấu phẩy, chúng sẽ được trả về ở dạng một bộ. Như được hiển thị trong đoạn mã trên, hai chuỗi "John""Armin" được trả về bằng một câu lệnh return duy nhất

ví dụ 2. Sử dụng từ điển

def name[]:
    n1 = "John"
    n2 = "Armin"

    return {1:n1, 2:n2}

names = name[]
print[names]

đầu ra

{1: 'John', 2: 'Armin'}

Khi bạn trả về các giá trị bằng từ điển, bạn sẽ dễ dàng theo dõi các giá trị được trả về bằng cách sử dụng các phím. Câu lệnh return trả về hai biến ở dạng từ điển

Hàm Python có thể trả về nhiều biến. Các biến này có thể được lưu trữ trực tiếp trong các biến. Một hàm không bắt buộc phải trả về một biến, nó có thể trả về 0, một, hai hoặc nhiều biến

Đây là thuộc tính riêng của Python, các ngôn ngữ lập trình khác như C++ hay Java mặc định không hỗ trợ tính năng này

khóa học liên quan. Hoàn thành khóa học & bài tập lập trình Python

Thí dụ

Giới thiệu

Các biến được định nghĩa trong hàm chỉ được biết trong hàm. Đó là do phạm vi của biến. Nói chung, đó không phải là vấn đề, trừ khi bạn muốn sử dụng đầu ra của hàm trong chương trình của mình

Trong trường hợp đó, bạn có thể trả về các biến từ một hàm. Trong trường hợp đơn giản nhất, bạn có thể trả về một biến duy nhất

1
2
3
def complexfunction[a,b]:
sum = a +b
return sum

Gọi hàm với hàm phức tạp [2,3] và đầu ra của nó có thể được sử dụng hoặc lưu

Nhưng nếu bạn có nhiều biến trong một hàm mà bạn muốn truy cập thì sao?

nhiều trở lại

Tạo một hàm getPerson[]. Như bạn đã biết một hàm có thể trả về một biến nhưng cũng có thể trả về nhiều biến

Trong hướng dẫn này, chúng tôi xem xét Python. Trả về nhiều giá trị từ một hàm. Chúng tôi giải thích chi tiết các phương pháp khác nhau và liệt kê những thiếu sót của chúng

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 [Tuples]
  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à Hãy cẩn thận - Python trả về nhiều giá trị

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

Các hàm được sử dụng để thực hiện một tác 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 số phương thức tiện dụng để trả về nhiều giá trị

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

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 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 yêu cầu một cặp dấu ngoặc []. Mặc dù điều này đúng, nhưng không phải lúc nào Python cũng yêu cầu dấu ngoặc để xác định một bộ

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à tập hợp các mục. Chúng khá giống với 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à tập hợp các mục nên chúng tôi có thể thêm giá trị vào danh sách và trả về danh sách

Mã để trả về nhiều giá trị bằng cách sử dụ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 pháp 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 pháp trước đó, việc truy cập một giá trị cụ thể sẽ gặp rắc rối. Tuy nhiên, đây không phải là vấn đề 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 các 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 là 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 pháp này, chúng tôi sử dụng 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 một lớp do người dùng định nghĩa. Phương pháp này đã được giới thiệu trong phiên bản Python 3. 7

Chủ Đề