Có thể trả về 2 giá trị trong Python không?

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

{1: 'John', 2: 'Armin'}
3 và
{1: 'John', 2: 'Armin'}
4 đượ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

Tuy nhiên, điều này nhanh chóng gặp vấn đề khi số lượng giá trị được trả về tăng lên. Nếu bạn muốn trả về bốn hoặc năm giá trị thì sao? . Việc giải nén chúng ở bất cứ đâu bạn muốn nhận cũng khá xấu

Quyền mua. Sử dụng từ điển

Bước hợp lý tiếp theo dường như là giới thiệu một số loại 'ký hiệu bản ghi'. Trong Python, cách rõ ràng để thực hiện điều này là sử dụng một

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

Hãy xem xét những điều sau đây

def g[x]:
  y0 = x + 1
  y1 = x * 3
  y2 = y0 ** y3
  return {'y0': y0, 'y1': y1 ,'y2': y2}

[Nói rõ hơn, y0, y1 và y2 chỉ có nghĩa là các định danh trừu tượng. Như đã chỉ ra, trong thực tế, bạn sẽ sử dụng các số nhận dạng có ý nghĩa. ]

Bây giờ, chúng ta có một cơ chế nhờ đó chúng ta có thể chiếu ra một phần tử cụ thể của đối tượng được trả về. Ví dụ,

result['y0']

Quyền mua. Sử dụng một lớp

Tuy nhiên, có một lựa chọn khác. Thay vào đó, chúng ta có thể trả về một cấu trúc chuyên biệt. Tôi đã đóng khung điều này trong ngữ cảnh của Python, nhưng tôi chắc chắn rằng nó cũng áp dụng cho các ngôn ngữ khác. Thật vậy, nếu bạn đang làm việc với C thì đây rất có thể là lựa chọn duy nhất của bạn. Đây đi

class ReturnValue:
  def __init__[self, y0, y1, y2]:
     self.y0 = y0
     self.y1 = y1
     self.y2 = y2

def g[x]:
  y0 = x + 1
  y1 = x * 3
  y2 = y0 ** y3
  return ReturnValue[y0, y1, y2]

Trong Python, hai phần trước có lẽ rất giống nhau về hệ thống ống nước - xét cho cùng thì

{1: 'John', 2: 'Armin'}
6 cuối cùng chỉ là các mục nhập trong
{1: 'John', 2: 'Armin'}
7 nội bộ của
def g[x]:
  y0 = x + 1
  y1 = x * 3
  y2 = y0 ** y3
  return {'y0': y0, 'y1': y1 ,'y2': y2}
0

Có một tính năng bổ sung do Python cung cấp cho các đối tượng nhỏ, thuộc tính

def g[x]:
  y0 = x + 1
  y1 = x * 3
  y2 = y0 ** y3
  return {'y0': y0, 'y1': y1 ,'y2': y2}
1. Các lớp có thể được thể hiện như

class ReturnValue[object]:
  __slots__ = ["y0", "y1", "y2"]
  def __init__[self, y0, y1, y2]:
     self.y0 = y0
     self.y1 = y1
     self.y2 = y2

Từ Hướng dẫn tham khảo Python

Khai báo

def g[x]:
  y0 = x + 1
  y1 = x * 3
  y2 = y0 ** y3
  return {'y0': y0, 'y1': y1 ,'y2': y2}
1 lấy một chuỗi các biến thể hiện và dành đủ không gian trong mỗi thể hiện để giữ giá trị cho từng biến. Không gian được tiết kiệm vì
{1: 'John', 2: 'Armin'}
7 không được tạo cho từng phiên bản

Quyền mua. Sử dụng một lớp dữ liệu [Python 3. 7+]

Sử dụng Python3. 7, trả về một lớp với các phương thức đặc biệt được thêm tự động, cách gõ và các công cụ hữu ích khác

@dataclass
class Returnvalue:
    y0: int
    y1: float
    y3: int

def total_cost[x]:
    y0 = x + 1
    y1 = x * 3
    y2 = y0 ** y3
    return ReturnValue[y0, y1, y2]

Quyền mua. Sử dụng một danh sách

Một gợi ý khác mà tôi đã bỏ qua đến từ Bill the Lizard

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

Đây là phương pháp ít yêu thích nhất của tôi mặc dù. Tôi cho rằng mình bị nhiễm độc khi tiếp xúc với Haskell, nhưng ý tưởng về các danh sách kiểu hỗn hợp luôn khiến tôi cảm thấy khó chịu. Trong ví dụ cụ thể này, danh sách không phải là loại hỗn hợp, nhưng nó có thể là

Một danh sách được sử dụng theo cách này thực sự không đạt được bất cứ điều gì đối với bộ dữ liệu theo như tôi có thể nói. Sự khác biệt thực sự duy nhất giữa danh sách và bộ dữ liệu trong Python là danh sách là , trong khi bộ dữ liệu thì không

Cá nhân tôi có xu hướng thực hiện các quy ước từ lập trình chức năng. sử dụng danh sách cho bất kỳ số phần tử nào cùng loại và bộ dữ liệu cho một số phần tử cố định thuộc loại được xác định trước

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: 'John', 2: 'Armin'}
1
{1: 'John', 2: 'Armin'}
2

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

Bạn có thể trả về 2 giá trị trong Python không?

Khoa học dữ liệu thực tế sử dụng Python . Các giá trị này có thể được lưu trữ trực tiếp trong các biến. Một hàm không bị hạn chế trả về một biến, nó có thể trả về 0, một, hai hoặc nhiều giá trị. Python functions can return multiple values. These values can be stored in variables directly. A function is not restricted to return a variable, it can return zero, one, two or more values.

Có thể return trả về 2 giá trị không?

Không, bạn không thể có hai lần trả về trong một hàm , lần trả về đầu tiên sẽ thoát khỏi hàm mà bạn sẽ cần tạo một đối tượng.

Một phương thức có thể trả về hai thứ không?

Có, chúng ta có thể trả về nhiều đối tượng từ một phương thức trong Java vì phương thức này luôn bao hàm các đối tượng rồi trả về.

Chủ Đề