Return trong Python: Cách sử dụng và các phương pháp sử dụng nhanh
19/08/2022 08:20
Lệnh return là một thành phần chính của các hàm và phương thức trong Python. Về cơ bản bạn có thể sử dụng câu lệnh này để gọi các hàm có giá trị trở về và return sẽ giúp trả về các giá trị đó
Lệnh return là một thành phần chính của các hàm và phương thức trong Python. Về cơ bản bạn có thể sử dụng câu lệnh này để gọi các hàm có giá trị trở về và return sẽ giúp trả về các giá trị đó. Sử dụng lệnh return hiệu quả là một trong những kỹ năng cốt lõi mà lập trình viên cần học nếu muốn lập trình các hàm tùy chỉnh một cách mạnh mẽ với hiệu suất cao. Bên cạnh có, việc sử dụng tối ưu lệnh return giúp bạn viết các hàm dễ đọc, dễ bảo trì và ngắn gọn hơn trong Python. Giờ thì cùng bắt đầu thôi!
Sơ lược về các hàm trong Python
Đa phần các ngôn ngữ lập trình đều cho phép bạn gán tên cho một khối mã để thực hiện một phép tính cụ thể. Các khối mã được đặt tên này có thể được sử dụng lại một cách nhanh chóng vì bạn có thể gọi chúng từ các vị trí khác nhau trong code của mình.
Các khối mã này sẽ được gọi là các chương trình con, thủ tục, quy trình hoặc hàm tùy thuộc vào ngôn ngữ lập trình mà họ sử dụng.
Trong Python, có hai loại hàm là hàm không có giá trị trả về (còn gọi là thủ tục), được sử dụng để thực hiện một tập hợp các hành động không cần tính toán hoặc trả về kết quả cuối cùng. Ví dụ như in chữ ra màn hình chẳng hạn. Loại thứ hai là hàm được sử dụng với mục đích tính toán giá trị hoặc kết quả cuối cùng và sau đó gửi trả lại mã. Đây là hàm có giá trị trả về. Và để làm cho các hàm trả về các giá trị thì bạn sẽ cần sử dụng câu lệnh return.
Tìm hiểu về Return trong Python
Khái niệm lệnh return trong Python
Cú pháp lệnh return
return [danh_sach_bieu_thuc]
Lệnh return trong Python thường được dùng để thoát hàm và trở về nơi mà tại đó hàm được gọi. Lệnh Return là một câu lệnh đặc biệt mà bạn có thể sử dụng bên trong một hàm hoặc một phương thức để gửi kết quả của hàm về điểm gọi. Lệnh return bao gồm một keyword return và theo sau bởi giá trị trả về.
Giá trị trả về của một hàm có thể là bất kỳ đối tượng nào trong Python vì hầu hết mọi thứ trong Python đều là một đối tượng. Vì vậy, hàm của bạn có thể trả lại các giá trị số (giá trị int, float và complex), bộ sưu tập và trình tự của các đối tượng (list, tuple, dictionary hoặc set), các đối tượng mà người dùng định nghĩa, lớp, hàm và thậm chí cả các module hoặc packages.
Lệnh return có trả giá trị
Với lệnh có trả giá trị, lệnh return Python sẽ ngay lập tức kết thúc việc thực thi hàm và gửi giá trị lại cho nơi được gọi. Để thêm lệnh return cho hàm có giá trị trả về, bạn sẽ cần sử dụng return theo sau một giá trị trả về tùy chọn.
>>> def return_42():
... return 42 # An explicit return statement
...
>>> return_42() # The caller code gets 42
42
Khi bạn xác định một hàm bằng một lệnh return có giá trị trả về rõ ràng bạn có thể sử dụng giá trị trả về đó trong bất kỳ biểu thức nào. Ví dụ:
>>> num = return_42()
>>> num
42
>>> return_42() * 2
84
>>> return_42() + 5
47
Trong ví dụ phía trên, vì return _42() tra về một giá trị số, bạn có thể sử dụng giá trị đó trong một biểu thức toán học hoặc bất kỳ loại biểu thức nào khác.
Lệnh return ngầm (không có giá trị trả về)
Một hàm trong Python sẽ luôn có giá trị trả về, không có khái niệm về thủ túc hoặc quy trình trong Python. Nếu bạn không sử dụng rõ ràng giá trị trả về trong một câu lệnh return hoặc hoàn toàn bỏ qua câu lệnh return thì Python sẽ trả lại một giá trị mặc định cho bạn. Giá trị này luôn được mặc định là None.
Giả sử bạn đang viết một hàm cộng thêm 1 vào giá trị x, nhưng lại quên cung cấp lệnh return. Trong trường hợp này, bạn sẽ nhận về một lệnh return ngầm mà giá trị được trả về là none.
>>> def add_one(x):
... # No return statement at all
... result = x + 1
...
>>> value = add_one(5)
>>> value
>>> print(value)
None
Sử dụng lệnh return để trả về nhiều giá trị
Bạn có thể sử dụng một lệnh return để trả về nhiều giá trị từ một hàm. Để làm điều đó, bạn chỉ cần cung cấp một số giá trị trả về được phân tách nhau bởi dấu chấm phẩy.
Ví dụ, giả sử bạn cần viết một hàm lấy mẫu dữ liệu số và trả về một bản tóm tắt các phép đo thống kê. Để code hàm này, bạn cần sử dụng module statistic tiêu chuẩn của Python, module này cung cấp một số hàm để tính toán thống kê toán học của dữ liệu số.
Dưới đây là cách mà bạn có thể thực thi hàm của bạn:
import statistics as st
def describe(sample):
return st.mean(sample), st.median(sample), st.mode(sample)
Trong ví dụ này, describe (), bạn có thể tận dụng khả năng trả về nhiều giá trị của Python trong một lệnh return bằng cách trả về giá trị trung bình và mode ở cùng một thời điểm, Cần chú ý rằng để trả về nhiều giá trị, bạn chỉ cần viết chúng theo thứ tự bạn muốn trả về và ngăn cách với nhau bằng dấu phẩy.
Sau khi đã mã hóa describe (), bạn có thể tận dụng tính năng giải nén có thể lặp lại để giải nén ba measure thành ba biến riêng biệt hoặc chỉ có thể lưu mọi thứ trong một biến:
>>> sample = [10, 2, 4, 7, 9, 3, 9, 8, 6, 7]
>>> mean, median, mode = describe(sample)
>>> mean
6.5
>>> median
7.0
>>> mode
7
>>> desc = describe(sample)
>>> desc
(6.5, 7.0, 7)
>>> type(desc)
<class 'tuple'>
Ở đây, bạn giải nén ba giá trị return của describe() thành các biến mean, median, mode. Ghi nhớ rằng trong ví dụ lần trước, bạn đã lưu tất cả các giá trị thành một biến duy nhất, desc.
Sử dụng Return với lệnh Conditionals (điều kiện)
Các hàm Python không bị giới hạn bởi một câu lệnh return duy nhất. Nếu một hàm đã cho có nhiều hơn một lệnh return, thì lệnh đầu tiên bạn thấy sẽ xác định thời điểm kết thúc của thực thi của hàm và cả giá trị trả về của nó.
Một cách phổ biến để viết các hàm với nhiều lệnh return là sử dụng các câu lệnh điều kiện cho phép bạn cung cấp các lệnh return tùy thuộc vào kết quá đánh giá của một số điều kiện.
Giả sử bạn cần viết mã một hàm nhận một số và trả về giá trị tuyệt đối của nó. Nếu số lớn hơn 0, thì bạn sẽ trả về giá trị ngược lại hoặc không âm của nó.
Ví dụ cách triển khai có thể thực hiện cho hàm này như sau:
>>> def my_abs(number):
... if number > 0:
... return number
... elif number < 0:
... return -number
...
>>> my_abs(-15)
15
>>> my_abs(15)
15
my_abs () có hai lệnh return rõ ràng, mỗi câu được gói trong một câu lệnh if riêng. Đây cũng là một lệnh return ngầm. Nếu number là 0, thì không có điều kiện nào là đúng và hàm kết thúc mà không có bất kỳ lệnh return rõ ràng nào. Khi điều này xảy ra kết quả bạn nhận được sẽ tự động là None.
Kết luận: Lệnh return cho phép bạn gửi bất kỳ đối tượng Python trong các hàm tùy chỉnh tới nơi gọi hàm. Lệnh này là một phần cơ bản của bất kỳ hàm hoặc phương thức Python nào, Nếu bạn thành thạo cách sử dụng lệnh Return trong Python, bạn có thể dễ dàng viết các hàm mạnh mẽ và linh động.