Hàm trả về đúng hoặc sai python

Câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của Python là thành phần chính của các hàm và phương thức. Bạn có thể sử dụng câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 để làm cho các hàm của bạn gửi các đối tượng Python trở lại mã người gọi. Các đối tượng này được gọi là giá trị trả về của hàm. Bạn có thể sử dụng chúng để thực hiện thêm tính toán trong các chương trình của mình

Show

Sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 một cách hiệu quả là một kỹ năng cốt lõi nếu bạn muốn viết mã các hàm tùy chỉnh Pythonic và mạnh mẽ

Trong hướng dẫn này, bạn sẽ học

  • Cách sử dụng câu lệnh Python
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    9 trong hàm của bạn
  • Cách trả về một hoặc nhiều giá trị từ hàm của bạn
  • Những thực tiễn tốt nhất để quan sát khi sử dụng câu lệnh
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    9

Với kiến ​​thức này, bạn sẽ có thể viết các hàm dễ đọc, dễ bảo trì và ngắn gọn hơn trong Python. Nếu bạn hoàn toàn chưa quen với các hàm Python, thì bạn có thể xem Xác định hàm Python của riêng bạn trước khi đi sâu vào hướng dẫn này

Tiền thưởng miễn phí. 5 Suy nghĩ về Làm chủ Python, một khóa học miễn phí dành cho các nhà phát triển Python cho bạn thấy lộ trình và tư duy mà bạn sẽ cần để đưa các kỹ năng Python của mình lên một tầm cao mới

Bắt đầu với các hàm Python

Hầu hết các ngôn ngữ lập trình cho phép bạn gán tên cho một khối mã thực hiện tính toán cụ thể. Các khối mã được đặt tên này có thể được tái sử dụng nhanh chóng vì bạn có thể sử dụng tên của chúng để gọi chúng từ các vị trí khác nhau trong mã của mình

Các lập trình viên gọi các khối mã được đặt tên này là chương trình con, thói quen, thủ tục hoặc hàm tùy thuộc vào ngôn ngữ họ sử dụng. Trong một số ngôn ngữ, có sự khác biệt rõ ràng giữa một quy trình hoặc thủ tục và một chức năng

Đôi khi sự khác biệt đó lớn đến mức bạn cần sử dụng một từ khóa cụ thể để xác định một thủ tục hoặc chương trình con và một từ khóa khác để xác định một hàm. Ví dụ, ngôn ngữ lập trình Visual Basic sử dụng

>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
4 và
>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
5 để phân biệt giữa hai

Nói chung, một thủ tục là một khối mã được đặt tên thực hiện một tập hợp các hành động mà không cần tính toán giá trị hoặc kết quả cuối cùng. Mặt khác, một hàm là một khối mã được đặt tên thực hiện một số hành động với mục đích tính toán giá trị hoặc kết quả cuối cùng, sau đó được gửi lại cho mã người gọi. Cả thủ tục và hàm đều có thể hành động dựa trên một tập hợp các giá trị đầu vào, thường được gọi là đối số

Trong Python, các loại khối mã được đặt tên này được gọi là hàm vì chúng luôn gửi lại giá trị cho người gọi. Tài liệu Python định nghĩa một hàm như sau

Một loạt các câu lệnh trả về một số giá trị cho người gọi. Nó cũng có thể được truyền bằng 0 hoặc nhiều đối số có thể được sử dụng trong quá trình thực thi phần thân. (Nguồn)

Mặc dù tài liệu chính thức nói rằng một hàm “trả về một số giá trị cho trình gọi”, nhưng bạn sẽ sớm thấy rằng các hàm có thể trả về bất kỳ đối tượng Python nào cho mã trình gọi

Nói chung, một hàm nhận các đối số (nếu có), thực hiện một số thao tác và trả về một giá trị (hoặc đối tượng). Giá trị mà hàm trả về cho người gọi thường được gọi là giá trị trả về của hàm. Tất cả các hàm Python đều có giá trị trả về, rõ ràng hoặc ẩn. Bạn sẽ đề cập đến sự khác biệt giữa giá trị trả về rõ ràng và tiềm ẩn sau trong hướng dẫn này

Để viết một hàm Python, bạn cần có một tiêu đề bắt đầu bằng từ khóa

>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
6, theo sau là tên của hàm, một danh sách tùy chọn gồm các đối số được phân tách bằng dấu phẩy bên trong một cặp dấu ngoặc đơn bắt buộc và dấu hai chấm cuối cùng.

Thành phần thứ hai của hàm là khối mã hoặc phần thân của hàm. Python xác định các khối mã bằng cách sử dụng thụt đầu dòng thay vì dấu ngoặc, từ khóa

>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
7 và
>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
8, v.v. Vì vậy, để xác định một hàm trong Python, bạn có thể sử dụng cú pháp sau

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0

Khi bạn đang mã hóa một hàm Python, bạn cần xác định tiêu đề bằng từ khóa

>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
6, tên của hàm và danh sách các đối số trong ngoặc đơn. Lưu ý rằng danh sách các đối số là tùy chọn, nhưng dấu ngoặc đơn là bắt buộc về mặt cú pháp. Sau đó, bạn cần xác định khối mã của hàm, khối này sẽ bắt đầu một cấp độ thụt vào bên phải

Trong ví dụ trên, bạn sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
20. Loại câu lệnh này hữu ích khi bạn cần một câu lệnh giữ chỗ trong mã của mình để làm cho nó đúng về mặt cú pháp, nhưng bạn không cần thực hiện bất kỳ hành động nào. Câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
20 còn được gọi là thao tác null vì chúng không thực hiện bất kỳ hành động nào

Ghi chú. Cú pháp đầy đủ để xác định các hàm và đối số của chúng nằm ngoài phạm vi của hướng dẫn này. Để có tài nguyên chuyên sâu về chủ đề này, hãy xem Xác định chức năng Python của riêng bạn

Để sử dụng một chức năng, bạn cần gọi nó. Một lệnh gọi hàm bao gồm tên của hàm theo sau là các đối số của hàm trong ngoặc đơn

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
4

Bạn sẽ chỉ cần truyền đối số cho lệnh gọi hàm nếu hàm đó yêu cầu chúng. Mặt khác, dấu ngoặc đơn luôn được yêu cầu trong lệnh gọi hàm. Nếu bạn quên chúng, thì bạn sẽ không gọi hàm mà tham chiếu nó như một đối tượng hàm

Để làm cho các hàm của bạn trả về một giá trị, bạn cần sử dụng câu lệnh Python

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Đó là những gì bạn sẽ trình bày từ thời điểm này trở đi

Loại bỏ các quảng cáo

Hiểu câu lệnh >>> return 42 File "", line 1 SyntaxError: 'return' outside function 9 của Python

Câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của Python 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 phương thức để gửi lại kết quả của hàm cho người gọi. Câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 bao gồm từ khóa
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 theo sau là giá trị trả về tùy chọn

Giá trị trả về của hàm Python có thể là bất kỳ đối tượng Python nào. Mọi thứ trong Python đều là đối tượng. Vì vậy, các hàm của bạn có thể trả về các giá trị số (các giá trị

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
27,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
28 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
29), các tập hợp và chuỗi các đối tượng (các đối tượng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
30,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
31,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
32 hoặc
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
33), các đối tượng, lớp, hàm và thậm chí cả các mô-đun hoặc gói do người dùng định nghĩa

Bạn có thể bỏ qua giá trị trả về của hàm và sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 trống không có giá trị trả về. Bạn cũng có thể bỏ qua toàn bộ câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Trong cả hai trường hợp, giá trị trả về sẽ là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36

Trong hai phần tiếp theo, bạn sẽ trình bày những kiến ​​thức cơ bản về cách thức hoạt động của câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 và cách bạn có thể sử dụng nó để trả lại kết quả của hàm cho mã lệnh gọi

Tuyên bố rõ ràng >>> return 42 File "", line 1 SyntaxError: 'return' outside function 9

Một câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng ngay lập tức chấm dứt thực thi hàm và gửi giá trị trả về trở lại mã người gọi. Để thêm một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng vào một hàm Python, bạn cần sử dụng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 theo sau là một giá trị trả về tùy chọn

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
5

Khi bạn xác định

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
62, bạn thêm một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng (
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
64) vào cuối khối mã của hàm.
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
65 là giá trị trả về rõ ràng của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
62. Điều này có nghĩa là bất cứ khi nào bạn gọi
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
62, hàm sẽ gửi lại
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
65 cho người gọi

Ghi chú. Bạn có thể sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng có hoặc không có giá trị trả về. Nếu bạn xây dựng câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 mà không chỉ định giá trị trả về, thì bạn sẽ ngầm trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36

Nếu bạn định nghĩa một hàm bằng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng có giá trị trả về rõ ràng, thì bạn có thể sử dụng giá trị trả về đó trong bất kỳ biểu thức nào

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
7

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
62 trả về một giá trị số, nên bạn có thể sử dụng giá trị đó trong biểu thức toán học hoặc bất kỳ loại biểu thức nào khác trong đó giá trị có ý nghĩa logic hoặc nhất quán. Đây là cách mã trình gọi có thể tận dụng giá trị trả về của hàm

Lưu ý rằng bạn chỉ có thể sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 bên trong định nghĩa hàm hoặc phương thức. Nếu bạn sử dụng nó ở bất kỳ nơi nào khác, thì bạn sẽ nhận được một
>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
05

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function

Khi bạn sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 bên ngoài một hàm hoặc phương thức, bạn sẽ nhận được thông báo
>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
05 cho bạn biết rằng câu lệnh không thể được sử dụng bên ngoài một hàm

Ghi chú. Các phương thức thông thường, phương thức lớp và phương thức tĩnh chỉ là các hàm trong ngữ cảnh của các lớp Python. Vì vậy, tất cả các khái niệm câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 mà bạn sẽ trình bày cũng áp dụng cho chúng

Bạn có thể sử dụng bất kỳ đối tượng Python nào làm giá trị trả về. Vì mọi thứ trong Python đều là đối tượng nên bạn có thể trả về chuỗi, danh sách, bộ dữ liệu, từ điển, hàm, lớp, thể hiện, đối tượng do người dùng định nghĩa và thậm chí cả mô-đun hoặc gói

Ví dụ: giả sử bạn cần viết một hàm lấy danh sách các số nguyên và trả về danh sách chỉ chứa các số chẵn trong danh sách ban đầu. Đây là một cách mã hóa chức năng này

>>>

>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]

>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
09 sử dụng khả năng hiểu danh sách để tạo danh sách lọc ra các số lẻ trong bản gốc
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
400. Sau đó, hàm trả về danh sách kết quả chỉ chứa các số chẵn

Một thực tế phổ biến là sử dụng kết quả của một biểu thức làm giá trị trả về trong câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Để áp dụng ý tưởng này, bạn có thể viết lại
>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
09 như sau

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
2

Việc hiểu danh sách được đánh giá và sau đó hàm trả về với danh sách kết quả. Lưu ý rằng bạn chỉ có thể sử dụng các biểu thức trong câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Biểu thức khác với các câu lệnh như điều kiện hoặc vòng lặp

Ghi chú. Mặc dù khả năng hiểu của

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
30 được xây dựng bằng cách sử dụng các từ khóa
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
405 và (tùy chọn)
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406, nhưng chúng được coi là các biểu thức hơn là các câu lệnh. Đó là lý do tại sao bạn có thể sử dụng chúng trong câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9

Ví dụ khác, giả sử bạn cần tính giá trị trung bình của một mẫu giá trị số. Để làm điều đó, bạn cần chia tổng các giá trị cho số lượng giá trị. Đây là một ví dụ sử dụng các hàm tích hợp sẵn

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
408 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
409

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
3

Trong

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
410, bạn không sử dụng biến cục bộ để lưu kết quả phép tính. Thay vào đó, bạn sử dụng biểu thức trực tiếp làm giá trị trả về. Đầu tiên Python đánh giá biểu thức
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
411 và sau đó trả về kết quả đánh giá, trong trường hợp này là giá trị
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
412

Loại bỏ các quảng cáo

Câu lệnh ngầm định >>> return 42 File "", line 1 SyntaxError: 'return' outside function 9

Hàm Python sẽ luôn có giá trị trả về. Không có khái niệm về thủ tục hay thói quen trong Python. Vì vậy, nếu bạn không rõ ràng sử dụng giá trị trả về trong câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 hoặc nếu bạn bỏ qua hoàn toàn câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9, thì Python sẽ ngầm trả về giá trị mặc định cho bạn. Giá trị trả về mặc định đó sẽ luôn là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36

Giả sử bạn đang viết một hàm thêm

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
417 vào một số
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
418, nhưng bạn quên cung cấp câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Trong trường hợp này, bạn sẽ nhận được một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 ngầm định sử dụng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36 làm giá trị trả về

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
6

Nếu bạn không cung cấp một câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng với giá trị trả về rõ ràng, thì Python sẽ cung cấp một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 ẩn sử dụng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36 làm giá trị trả về. Trong ví dụ trên,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
425 thêm
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
417 vào
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
418 và lưu trữ giá trị trong
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
428 nhưng nó không trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
428. Đó là lý do tại sao bạn nhận được
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
430 thay vì
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
431. Để khắc phục sự cố, bạn cần phải
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
432 hoặc trực tiếp
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
433

Một ví dụ về hàm trả về

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36 là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
435. Mục tiêu của chức năng này là in các đối tượng vào tệp luồng văn bản, thường là đầu ra tiêu chuẩn (màn hình của bạn). Vì vậy, hàm này không cần câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng vì nó không trả về bất kỳ thứ gì hữu ích hoặc có ý nghĩa

>>>

>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
0

Cuộc gọi đến

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
435 in
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
438 ra màn hình. Vì đây là mục đích của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
435, nên hàm không cần trả về bất kỳ thứ gì hữu ích, vì vậy bạn nhận được giá trị trả về là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36

Ghi chú. Trình thông dịch Python không hiển thị

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36. Vì vậy, để hiển thị giá trị trả về là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36 trong phiên tương tác, bạn cần sử dụng rõ ràng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
435

Bất kể hàm của bạn dài và phức tạp như thế nào, bất kỳ hàm nào không có câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng hoặc hàm có câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 mà không có giá trị trả về, sẽ trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36

Trả lại vs In

Nếu bạn đang làm việc trong một phiên tương tác, thì bạn có thể nghĩ rằng việc in một giá trị và trả về một giá trị là các thao tác tương đương. Hãy xem xét hai hàm sau và đầu ra của chúng

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
40

Cả hai chức năng dường như làm điều tương tự. Trong cả hai trường hợp, bạn sẽ thấy

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
438 được in trên màn hình của mình. Chỉ có một sự khác biệt tinh tế có thể nhìn thấy—dấu ngoặc đơn trong ví dụ thứ hai. Nhưng hãy xem điều gì sẽ xảy ra nếu bạn trả về một kiểu dữ liệu khác, chẳng hạn như một đối tượng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
27

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
41

Không có sự khác biệt có thể nhìn thấy bây giờ. Trong cả hai trường hợp, bạn có thể thấy

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
65 trên màn hình của mình. Hành vi đó có thể gây nhầm lẫn nếu bạn mới bắt đầu với Python. Bạn có thể nghĩ rằng việc trả lại và in một giá trị là những hành động tương đương

Bây giờ, giả sử bạn đang tìm hiểu sâu hơn về Python và bạn đang bắt đầu viết tập lệnh đầu tiên của mình. Bạn mở một trình soạn thảo văn bản và gõ đoạn mã sau

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
42

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
450 lấy hai số, cộng chúng và trả về kết quả. Ở dòng 5, bạn gọi ______ 1450 để tính tổng ________ 1452 cộng với ________ 1452. Vì bạn vẫn đang tìm hiểu sự khác biệt giữa trả lại và in một giá trị, nên bạn có thể mong đợi tập lệnh của mình in
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
454 ra màn hình. Tuy nhiên, đó không phải là điều xảy ra và bạn không nhận được gì trên màn hình của mình

Hãy thử nó ra một mình. Lưu tập lệnh của bạn vào tệp có tên

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
455 và chạy tập lệnh đó từ dòng lệnh của bạn như sau

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
43

Nếu bạn chạy

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
455 từ dòng lệnh của mình thì bạn sẽ không thấy bất kỳ kết quả nào trên màn hình của mình. Đó là bởi vì khi bạn chạy tập lệnh, giá trị trả về của các hàm mà bạn gọi trong tập lệnh không được in ra màn hình giống như trong phiên tương tác

Nếu bạn muốn tập lệnh của mình hiển thị kết quả của việc gọi

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
450 trên màn hình, thì bạn cần gọi rõ ràng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
435. Kiểm tra bản cập nhật sau của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
455

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
44

Bây giờ, khi bạn chạy

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
455, bạn sẽ thấy số
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
454 trên màn hình của mình

Vì vậy, nếu bạn đang làm việc trong một phiên tương tác, thì Python sẽ hiển thị kết quả của bất kỳ lệnh gọi hàm nào trực tiếp trên màn hình của bạn. Nhưng nếu bạn đang viết một script và bạn muốn xem giá trị trả về của hàm, thì bạn cần sử dụng rõ ràng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
435

Loại bỏ các quảng cáo

Trả về nhiều giá trị

Bạn có thể sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 để 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 bằng dấu phẩy

Ví dụ: giả sử bạn cần viết một hàm lấy một 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ê. Để mã hóa chức năng đó, bạn có thể sử dụng mô-đun chuẩn Python

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
464, 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ố

Đây là một triển khai có thể có của chức năng của bạn

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
45

Trong

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
465, bạn tận dụng khả năng của Python để trả về nhiều giá trị trong một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 duy nhất bằng cách trả về giá trị trung bình, trung vị và chế độ của mẫu cùng một lúc. Lưu ý rằng, để trả về nhiều giá trị, bạn chỉ cần viết chúng trong danh sách được phân tách bằng dấu phẩy theo thứ tự bạn muốn trả về

Khi bạn đã mã hóa

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
465, bạn có thể tận dụng một tính năng mạnh mẽ của Python được gọi là giải nén lặp lại để giải nén ba thước đo thành ba biến riêng biệt hoặc bạn chỉ có thể lưu trữ mọi thứ trong một biến

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
46

Tại đây, bạn giải nén ba giá trị trả về của

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
465 thành các biến
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
469,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
470 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
471. Lưu ý rằng trong ví dụ trước, bạn lưu trữ tất cả các giá trị trong một biến duy nhất,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
472, hóa ra là một biến Python
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
31

Ghi chú. Bạn có thể tạo một

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
31 Python bằng cách chỉ gán một số giá trị được phân tách bằng dấu phẩy cho một biến duy nhất. Không cần sử dụng dấu ngoặc đơn để tạo một
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
31. Đó là lý do tại sao nhiều giá trị trả về được đóng gói trong một
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
31

Hàm dựng sẵn

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
477 cũng là một ví dụ về hàm trả về nhiều giá trị. Hàm lấy hai số (không phức tạp) làm đối số và trả về hai số, thương của hai giá trị đầu vào và phần còn lại của phép chia

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
47

Cuộc gọi đến

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
477 trả về một bộ chứa thương và phần còn lại là kết quả của việc chia hai số không phức tạp được cung cấp làm đối số. Đây là một ví dụ về hàm có nhiều giá trị trả về

Sử dụng câu lệnh >>> return 42 File "", line 1 SyntaxError: 'return' outside function 9 của Python. Thực hành tốt nhất

Cho đến giờ, bạn đã nắm được kiến ​​thức cơ bản về cách thức hoạt động của câu lệnh Python

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Bây giờ bạn đã biết cách viết các hàm trả về một hoặc nhiều giá trị cho người gọi. Ngoài ra, bạn đã học được rằng nếu bạn không thêm câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng với giá trị trả về rõ ràng vào một hàm nhất định, thì Python sẽ thêm nó cho bạn. Giá trị đó sẽ là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36

Trong phần này, bạn sẽ đề cập đến một số ví dụ sẽ hướng dẫn bạn một tập hợp các phương pháp lập trình tốt để sử dụng hiệu quả câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Những thực hành này sẽ giúp bạn viết các hàm dễ đọc, dễ bảo trì, mạnh mẽ và hiệu quả hơn trong Python

Trả lại >>> return 42 File "", line 1 SyntaxError: 'return' outside function 36 Rõ ràng

Một số lập trình viên dựa vào câu lệnh ngầm

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 mà Python thêm vào bất kỳ hàm nào mà không có hàm rõ ràng. Điều này có thể gây nhầm lẫn cho các nhà phát triển đến từ các ngôn ngữ lập trình khác trong đó một hàm không có giá trị trả về được gọi là một thủ tục

Có những tình huống mà bạn có thể thêm một

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
486 rõ ràng vào các chức năng của mình. Tuy nhiên, trong các tình huống khác, bạn có thể dựa vào hành vi mặc định của Python

  • Nếu hàm của bạn thực hiện các hành động nhưng không có giá trị

    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    9 rõ ràng và hữu ích, thì bạn có thể bỏ qua việc trả về
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    36 vì làm như vậy sẽ chỉ thừa và khó hiểu. Bạn cũng có thể sử dụng
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    9 trần mà không có giá trị trả về chỉ để làm rõ ý định quay lại từ hàm của bạn

  • Nếu hàm của bạn có nhiều câu lệnh

    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    9 và trả về
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    36 là một tùy chọn hợp lệ, thì bạn nên xem xét việc sử dụng rõ ràng
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    486 thay vì dựa vào hành vi mặc định của Python

Những phương pháp này có thể cải thiện khả năng đọc và khả năng bảo trì mã của bạn bằng cách truyền đạt rõ ràng ý định của bạn

Khi nói đến việc trả về

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36, bạn có thể sử dụng một trong ba cách tiếp cận có thể

  1. Bỏ qua câu lệnh
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    9 và dựa vào hành vi mặc định trả về
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    36
  2. Sử dụng một giá trị trần
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    9 không có giá trị trả về, giá trị này cũng trả về
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    36
  3. Trả lại
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    36 một cách rõ ràng

Đây là cách nó hoạt động trong thực tế

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
48

Có trả lại

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36 một cách rõ ràng hay không là quyết định cá nhân. Tuy nhiên, bạn nên xem xét rằng trong một số trường hợp, một
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
486 rõ ràng có thể tránh được các vấn đề về khả năng bảo trì. Điều này đặc biệt đúng đối với các nhà phát triển đến từ các ngôn ngữ lập trình khác không hoạt động như Python.

Loại bỏ các quảng cáo

Ghi nhớ giá trị trả về

Khi viết các hàm tùy chỉnh, bạn có thể vô tình quên trả về một giá trị từ một hàm. Trong trường hợp này, Python sẽ trả về

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36 cho bạn. Điều này có thể gây ra các lỗi tinh vi mà nhà phát triển Python mới bắt đầu có thể khó hiểu và gỡ lỗi

Bạn có thể tránh vấn đề này bằng cách viết câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 ngay sau phần đầu của hàm. Sau đó, bạn có thể thực hiện lần thứ hai để viết phần thân của hàm. Đây là một mẫu mà bạn có thể sử dụng khi mã hóa các hàm Python của mình

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
49

Nếu bạn đã quen với việc bắt đầu các chức năng của mình như thế này, thì rất có thể bạn sẽ không còn nhớ câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 nữa. Với phương pháp này, bạn có thể viết phần thân của hàm, kiểm tra nó và đổi tên các biến sau khi bạn biết rằng hàm đó hoạt động

Phương pháp này có thể tăng năng suất của bạn và làm cho các chức năng của bạn ít bị lỗi hơn. Nó cũng có thể giúp bạn tiết kiệm rất nhiều thời gian gỡ lỗi

Tránh các biểu thức phức tạp

Như bạn đã thấy trước đây, một phương pháp phổ biến là sử dụng kết quả của một biểu thức làm giá trị trả về trong các hàm Python. Nếu biểu thức mà bạn đang sử dụng trở nên quá phức tạp thì cách làm này có thể dẫn đến các hàm khó hiểu, khó gỡ lỗi và bảo trì

Ví dụ: nếu bạn đang thực hiện một phép tính phức tạp, thì sẽ dễ đọc hơn khi tính toán tăng dần kết quả cuối cùng bằng cách sử dụng các biến tạm thời có tên có ý nghĩa

Hãy xem xét hàm sau tính toán phương sai của một mẫu dữ liệu số

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
50

Cách diễn đạt mà bạn sử dụng ở đây khá phức tạp và khó hiểu. Cũng khó gỡ lỗi vì bạn đang thực hiện nhiều thao tác trong một biểu thức. Để khắc phục sự cố cụ thể này, bạn có thể tận dụng lợi thế của phương pháp phát triển gia tăng để cải thiện khả năng đọc của hàm

Hãy xem triển khai thay thế sau đây của

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
504

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
51

Trong lần triển khai thứ hai này của

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
504, bạn tính toán phương sai theo một số bước. Mỗi bước được biểu thị bằng một biến tạm thời có tên có ý nghĩa

Các biến tạm thời như

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
506,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
469 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
508 thường hữu ích khi gỡ lỗi mã của bạn. Ví dụ, nếu có gì đó không ổn với một trong số chúng, thì bạn có thể gọi cho
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
435 để biết chuyện gì đang xảy ra trước khi câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 chạy

Nói chung, bạn nên tránh sử dụng các biểu thức phức tạp trong câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của mình. Thay vào đó, bạn có thể chia mã của mình thành nhiều bước và sử dụng các biến tạm thời cho từng bước. Sử dụng các biến tạm thời có thể giúp mã của bạn dễ gỡ lỗi, hiểu và bảo trì hơn

Trả về giá trị so với sửa đổi Globals

Các hàm không có câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng với giá trị trả về có ý nghĩa thường tạo thành các hành động có tác dụng phụ. Ví dụ, tác dụng phụ có thể là in nội dung nào đó ra màn hình, sửa đổi biến toàn cục, cập nhật trạng thái của đối tượng, ghi một số văn bản vào tệp, v.v.

Sửa đổi các biến toàn cầu thường được coi là một thực hành lập trình xấu. Cũng giống như các chương trình có biểu thức phức tạp, các chương trình sửa đổi các biến toàn cục có thể khó gỡ lỗi, hiểu và bảo trì

Khi bạn sửa đổi một biến toàn cục, bạn có khả năng ảnh hưởng đến tất cả các hàm, lớp, đối tượng và bất kỳ phần nào khác của chương trình dựa trên biến toàn cục đó

Để hiểu một chương trình sửa đổi các biến toàn cục, bạn cần biết tất cả các phần của chương trình có thể xem, truy cập và thay đổi các biến đó. Vì vậy, thực hành tốt khuyên bạn nên viết các hàm độc lập nhận một số đối số và trả về một giá trị (hoặc các giá trị) hữu ích mà không gây ra bất kỳ tác dụng phụ nào đối với các biến toàn cục

Ngoài ra, các hàm có câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng trả về một giá trị có ý nghĩa sẽ dễ kiểm tra hơn các hàm sửa đổi hoặc cập nhật các biến toàn cục

Ví dụ sau đây cho thấy một hàm thay đổi một biến toàn cục. Hàm sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
514, đây cũng được coi là một cách lập trình tồi trong Python

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
52

Trong ví dụ này, trước tiên bạn tạo một biến toàn cục,

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
515, với giá trị ban đầu là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516. Bên trong
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
517, bạn sử dụng câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
514 để báo cho hàm rằng bạn muốn sửa đổi một biến toàn cục. Câu lệnh cuối cùng tăng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
515 bởi
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
417

Kết quả của việc gọi

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
517 sẽ phụ thuộc vào giá trị ban đầu của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
515. Các giá trị ban đầu khác nhau cho
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
515 sẽ tạo ra các kết quả khác nhau, do đó, kết quả của hàm không thể được kiểm soát bởi chính hàm đó

Để tránh loại hành vi này, bạn có thể viết một

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
517 độc lập nhận các đối số và trả về một giá trị nhất quán chỉ phụ thuộc vào các đối số đầu vào

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
53

Bây giờ, kết quả của việc gọi

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
517 chỉ phụ thuộc vào các đối số đầu vào hơn là giá trị ban đầu của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
515. Điều này làm cho chức năng mạnh mẽ hơn và dễ kiểm tra hơn

Ghi chú. Để hiểu rõ hơn về cách kiểm tra mã Python của bạn, hãy xem Phát triển dựa trên thử nghiệm với PyTest

Ngoài ra, khi bạn cần cập nhật

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
515, bạn có thể thực hiện điều đó một cách rõ ràng bằng lệnh gọi tới
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
517. Bằng cách này, bạn sẽ có nhiều quyền kiểm soát hơn đối với những gì đang xảy ra với
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
515 trong toàn bộ mã của mình

Nói chung, nên tránh các hàm sửa đổi các biến toàn cục. Nếu có thể, hãy thử viết các hàm độc lập với câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng trả về một giá trị nhất quán và có ý nghĩa

Loại bỏ các quảng cáo

Sử dụng >>> return 42 File "", line 1 SyntaxError: 'return' outside function 9 với câu điều kiện

Các hàm Python không bị giới hạn chỉ có một câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Nếu một hàm nhất định có nhiều hơn một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9, thì câu lệnh đầu tiên gặp phải sẽ xác định điểm kết thúc quá trình 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 có nhiều câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 là sử dụng các câu lệnh điều kiện cho phép bạn cung cấp các câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 khác nhau tùy thuộc vào kết quả đánh giá một số điều kiện

Giả sử bạn cần viết mã một hàm nhận vào một số và trả về giá trị tuyệt đối của nó. Nếu số lớn hơn

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516, thì bạn sẽ trả về cùng một số. Nếu số nhỏ hơn
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516, thì bạn sẽ trả về giá trị ngược lại hoặc giá trị không âm

Đây là một triển khai khả thi cho chức năng này

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
54

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
538 có hai câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng, mỗi câu lệnh được bao bọc trong câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406 của chính nó. Nó cũng có một câu lệnh ngầm
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Nếu
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
542 lại là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516, thì cả hai điều kiện đều không đúng và hàm kết thúc mà không nhấn bất kỳ câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng nào. Khi điều này xảy ra, bạn sẽ tự động nhận được
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36

Hãy xem cuộc gọi sau tới

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
538 bằng cách sử dụng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516 làm đối số

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
55

Khi bạn gọi

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
538 sử dụng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516 làm đối số, kết quả là bạn nhận được
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36. Đó là bởi vì luồng thực thi đi đến cuối hàm mà không đi đến bất kỳ câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 rõ ràng nào. Thật không may, giá trị tuyệt đối của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516 là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516, không phải
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
36

Để khắc phục sự cố này, bạn có thể thêm câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 thứ ba, trong mệnh đề
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
556 mới hoặc trong mệnh đề
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
557 cuối cùng

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
56

Bây giờ, ________ 3538 kiểm tra mọi điều kiện có thể, ________ 3559, ________ 3560 và ________ 3561. Mục đích của ví dụ này là để chỉ ra rằng khi bạn đang sử dụng câu lệnh điều kiện để cung cấp nhiều câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9, bạn cần đảm bảo rằng mọi tùy chọn có thể có câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của chính nó. Nếu không, chức năng của bạn sẽ có một lỗi ẩn

Cuối cùng, bạn có thể triển khai

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
538 theo cách ngắn gọn, hiệu quả và Pythonic hơn bằng cách sử dụng một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
57

Trong trường hợp này, hàm của bạn chạm vào câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 đầu tiên nếu
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
560. Trong tất cả các trường hợp khác, cho dù là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
559 hay
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
561, nó sẽ chạm vào câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 thứ hai. Với triển khai mới này, chức năng của bạn trông tốt hơn rất nhiều. Nó dễ đọc hơn, súc tích và hiệu quả hơn

Ghi chú. Có một hàm Python tích hợp tiện lợi có tên là

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
571 để tính giá trị tuyệt đối của một số. Hàm trong ví dụ trên chỉ nhằm mục đích minh họa cho điểm đang thảo luận

Nếu bạn đang sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406 để cung cấp một số câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9, thì bạn không cần mệnh đề
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
557 để bao hàm điều kiện cuối cùng. Chỉ cần thêm một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 vào cuối khối mã của hàm và ở mức thụt lề đầu tiên

Trả lại >>> return 42 File "", line 1 SyntaxError: 'return' outside function 576 hoặc >>> return 42 File "", line 1 SyntaxError: 'return' outside function 577

Một trường hợp sử dụng phổ biến khác cho sự kết hợp của các câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 là khi bạn đang mã hóa một hàm có giá trị Boolean hoặc vị ngữ. Loại hàm này trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 hoặc
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577 theo một điều kiện nhất định

Ví dụ: giả sử bạn cần viết một hàm nhận hai số nguyên,

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
582 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
583, rồi trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 nếu
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
582 chia hết cho
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
583. Nếu không, hàm sẽ trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577. Đây là một triển khai có thể

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
58

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
588 trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 nếu phần còn lại của phép chia
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
582 cho
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
583 bằng với
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516. Nếu không, nó sẽ trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577. Lưu ý rằng trong Python, giá trị
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516 là sai, vì vậy bạn cần sử dụng toán tử
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
595 để phủ định giá trị thực của điều kiện

Đôi khi bạn sẽ viết các hàm vị ngữ liên quan đến các toán tử như sau

  • Các toán tử so sánh
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    596,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    597,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    598,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    599,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    700 và
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    701
  • Toán tử thành viên
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    702
  • Toán tử nhận dạng
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    703
  • Toán tử Boolean
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    595

Trong những trường hợp này, bạn có thể trực tiếp sử dụng biểu thức Boolean trong câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của mình. Điều này là có thể bởi vì các toán tử này trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 hoặc
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577. Theo ý tưởng này, đây là một triển khai mới của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
588

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
59

Nếu

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
582 chia hết cho
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
583, thì
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
711 trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
516, sai trong Python. Vì vậy, để trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576, bạn cần sử dụng toán tử
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
595

Ghi chú. Python tuân theo một bộ quy tắc để xác định giá trị thật của một đối tượng

Ví dụ: các đối tượng sau được coi là giả

  • Các hằng số như
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    36 và
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    577
  • Các loại số có giá trị bằng 0 như
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    516,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    718,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    719,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    720 và
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    721
  • Các chuỗi và tập hợp rỗng như
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    722,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    723,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    724,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    725,
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    726 và
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    727
  • Các đối tượng triển khai
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    728 với giá trị trả về là
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    577 hoặc
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    730 với giá trị trả về là
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    516

Bất kỳ đối tượng nào khác sẽ được coi là trung thực

Mặt khác, nếu bạn cố gắng sử dụng các điều kiện liên quan đến các toán tử Boolean như

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
732 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
733 theo cách bạn đã thấy trước đây, thì các hàm vị ngữ của bạn sẽ không hoạt động chính xác. Đó là bởi vì các toán tử này hoạt động khác nhau. Chúng trả về một trong các toán hạng trong điều kiện thay vì
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 hoặc
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
70

Nói chung,

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
733 trả về toán hạng sai đầu tiên hoặc toán hạng cuối cùng. Mặt khác,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
732 trả về toán hạng thực đầu tiên hoặc toán hạng cuối cùng. Vì vậy, để viết một vị từ liên quan đến một trong các toán tử này, bạn sẽ cần sử dụng câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406 rõ ràng hoặc lệnh gọi hàm tích hợp sẵn
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
739

Giả sử bạn muốn viết một hàm vị từ nhận hai giá trị và trả về

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 nếu cả hai đều đúng và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577 nếu ngược lại. Đây là cách tiếp cận đầu tiên của bạn với chức năng này

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
71

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
733 trả về toán hạng thay vì
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 hoặc
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577 nên hàm của bạn không hoạt động chính xác. Có ít nhất ba khả năng để khắc phục sự cố này

  1. Một tuyên bố rõ ràng
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    406
  2. Một biểu thức điều kiện (toán tử bậc ba)
  3. Hàm Python tích hợp sẵn
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    739

Nếu bạn sử dụng cách tiếp cận đầu tiên, thì bạn có thể viết

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
747 như sau

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
72

Câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406 kiểm tra xem
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
582 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
583 có đúng không. Nếu vậy, thì
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
747 trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576. Nếu không, nó sẽ trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577

Mặt khác, nếu bạn sử dụng biểu thức điều kiện Python hoặc toán tử bậc ba, thì bạn có thể viết hàm vị ngữ của mình như sau

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
73

Tại đây, bạn sử dụng biểu thức điều kiện để cung cấp giá trị trả về cho

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
747. Biểu thức điều kiện được đánh giá là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 nếu cả
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
582 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
583 đều đúng. Mặt khác, kết quả cuối cùng là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577

Cuối cùng nếu bạn dùng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
739 thì bạn đánh mã
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
747 như sau

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
74

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
739 trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 nếu
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
582 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
583 là đúng và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577 nếu ngược lại. Tùy bạn sử dụng cách tiếp cận nào để giải quyết vấn đề này. Tuy nhiên, giải pháp thứ hai có vẻ dễ đọc hơn. Bạn nghĩ sao?

Loại bỏ các quảng cáo

Vòng lặp ngắn mạch

Một câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 bên trong một vòng lặp thực hiện một số kiểu đoản mạch. Nó phá vỡ việc thực thi vòng lặp và làm cho hàm trả về ngay lập tức. Để hiểu rõ hơn về hành vi này, bạn có thể viết một hàm mô phỏng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
767. Hàm tích hợp này có thể lặp lại và trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576 nếu ít nhất một trong số các mục của nó là trung thực

Để giả lập

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
767, bạn có thể viết mã một hàm như sau

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
75

Nếu bất kỳ

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
770 nào trong
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
771 là đúng, thì luồng thực thi sẽ đi vào khối
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406. Câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 ngắt vòng lặp và trả về ngay với giá trị trả về là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
576. Nếu không có giá trị nào trong
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
771 là đúng, thì
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
776 trả về
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577

Chức năng này thực hiện đánh giá ngắn mạch. Ví dụ: giả sử bạn vượt qua một lần lặp có chứa một triệu mục. Nếu mục đầu tiên trong lần lặp đó xảy ra là đúng, thì vòng lặp chỉ chạy một lần chứ không phải một triệu lần. Điều này có thể giúp bạn tiết kiệm rất nhiều thời gian xử lý khi chạy mã của mình

Điều quan trọng cần lưu ý là để sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 bên trong vòng lặp, bạn cần bọc câu lệnh đó trong câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406. Nếu không, vòng lặp sẽ luôn bị ngắt trong lần lặp đầu tiên

Nhận biết mã chết

Ngay khi một hàm chạm vào câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9, nó sẽ kết thúc mà không thực thi bất kỳ mã nào tiếp theo. Do đó, mã xuất hiện sau câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của hàm thường được gọi là mã chết. Trình thông dịch Python hoàn toàn bỏ qua mã chết khi chạy các chức năng của bạn. Vì vậy, có loại mã đó trong một chức năng là vô ích và khó hiểu

Xem xét hàm sau, hàm này thêm mã sau câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của nó

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
76

Câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
783 trong ví dụ này sẽ không bao giờ thực thi vì câu lệnh đó xuất hiện sau câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của hàm. Xác định mã chết và loại bỏ nó là một cách thực hành tốt mà bạn có thể áp dụng để viết các chức năng tốt hơn

Điều đáng chú ý là nếu bạn đang sử dụng câu lệnh có điều kiện để cung cấp nhiều câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9, thì bạn có thể có mã sau câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 sẽ không chết miễn là nó nằm ngoài câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
406

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
77

Mặc dù lệnh gọi tới

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
435 diễn ra sau câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9, nhưng đó không phải là mã chết. Khi
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
790 được đánh giá thành
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
577, lệnh gọi
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
435 được chạy và bạn nhận được
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
438 được in ra màn hình của mình

Trả lại nhiều đối tượng được đặt tên

Khi bạn đang viết một hàm trả về nhiều giá trị trong một câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9, bạn có thể cân nhắc sử dụng một đối tượng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
795 để làm cho các hàm của bạn dễ đọc hơn.
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
796 là một lớp tập hợp trả về một lớp con của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
31 có các trường hoặc thuộc tính. Bạn có thể truy cập các thuộc tính đó bằng ký hiệu dấu chấm hoặc thao tác lập chỉ mục

Trình khởi tạo của

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
796 nhận một số đối số. Tuy nhiên, để bắt đầu sử dụng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
796 trong mã của bạn, bạn chỉ cần biết về hai mã đầu tiên

  1. >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    00 giữ tên của lớp giống bộ dữ liệu mà bạn đang tạo. Nó cần phải là một chuỗi
  2. >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    01 giữ tên của các trường hoặc thuộc tính của lớp giống bộ dữ liệu. Nó có thể là một chuỗi các chuỗi, chẳng hạn như
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    02 hoặc một chuỗi với mỗi tên được phân tách bằng khoảng trắng hoặc dấu phẩy, chẳng hạn như
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    03 hoặc
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    04

Sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
796 khi bạn cần trả về nhiều giá trị có thể làm cho hàm của bạn dễ đọc hơn đáng kể mà không cần quá nhiều nỗ lực. Xem xét bản cập nhật sau của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
465 bằng cách sử dụng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
796 làm giá trị trả về

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
78

Bên trong

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
465, bạn tạo một
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
796 có tên là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
10. Đối tượng này có thể có các thuộc tính được đặt tên mà bạn có thể truy cập bằng cách sử dụng ký hiệu dấu chấm hoặc bằng cách sử dụng thao tác lập chỉ mục. Trong ví dụ này, các thuộc tính đó là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
11,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
12 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
13

Bạn có thể tạo một đối tượng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
10 và sử dụng nó làm giá trị trả về. Để làm điều đó, bạn cần khởi tạo
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
10 giống như bạn làm với bất kỳ lớp Python nào. Lưu ý rằng bạn cần cung cấp một giá trị cụ thể cho từng thuộc tính được đặt tên, giống như bạn đã làm trong câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của mình

Đây là cách hoạt động của

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
465 hiện nay

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
79

Khi bạn gọi

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
465 với một mẫu dữ liệu số, bạn sẽ nhận được một đối tượng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
796 chứa giá trị trung bình, trung vị và chế độ của mẫu. Lưu ý rằng bạn có thể truy cập từng phần tử của bộ dữ liệu bằng cách sử dụng ký hiệu dấu chấm hoặc thao tác lập chỉ mục

Cuối cùng, bạn cũng có thể sử dụng thao tác giải nén lặp lại để lưu trữ từng giá trị trong biến độc lập của chính nó

Loại bỏ các quảng cáo

Chức năng trả về. đóng cửa

Trong Python, hàm là đối tượng hạng nhất. Đối tượng hạng nhất là một đối tượng có thể được gán cho một biến, được truyền dưới dạng đối số cho hàm hoặc được sử dụng làm giá trị trả về trong hàm. Vì vậy, bạn có thể sử dụng một đối tượng hàm làm giá trị trả về trong bất kỳ câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 nào

Một hàm lấy một hàm làm đối số, trả về một hàm dưới dạng kết quả hoặc cả hai là một hàm bậc cao hơn. Hàm đóng của nhà máy là một ví dụ phổ biến về hàm bậc cao hơn trong Python. Loại hàm này nhận một số đối số và trả về một hàm bên trong. Hàm bên trong thường được gọi là bao đóng

Một bao đóng mang thông tin về phạm vi thực hiện kèm theo của nó. Điều này cung cấp một cách để giữ lại thông tin trạng thái giữa các lần gọi hàm. Các hàm đóng của nhà máy rất hữu ích khi bạn cần viết mã dựa trên khái niệm đánh giá lười biếng hoặc chậm trễ

Giả sử bạn cần viết một hàm trợ giúp nhận vào một số và trả về kết quả nhân số đó với một thừa số đã cho. Bạn có thể mã chức năng đó như sau

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
21 lấy
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
22 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
542 làm đối số và trả về sản phẩm của họ. Vì
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
22 hiếm khi thay đổi trong ứng dụng của bạn, nên bạn cảm thấy khó chịu khi cung cấp cùng một hệ số trong mọi lệnh gọi hàm. Vì vậy, bạn cần một cách để giữ lại trạng thái hoặc giá trị của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
22 giữa các lần gọi đến
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
21 và chỉ thay đổi nó khi cần. Để giữ lại giá trị hiện tại của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
22 giữa các cuộc gọi, bạn có thể sử dụng một bao đóng

Việc triển khai sau đây của

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
21 sử dụng một bao đóng để giữ lại giá trị của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
22 giữa các cuộc gọi

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
1

Bên trong

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
21, bạn định nghĩa một hàm bên trong có tên là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
31 và trả về nó mà không cần gọi nó. Đối tượng hàm mà bạn trả về là một bao đóng giữ lại thông tin về trạng thái của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
22. Nói cách khác, nó ghi nhớ giá trị của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
22 giữa các cuộc gọi. Đó là lý do tại sao
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
34 nhớ rằng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
22 bằng với
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
452 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
37 nhớ rằng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
22 bằng với
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
39

Lưu ý rằng bạn có thể tự do sử dụng lại

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
34 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
37 vì họ không quên thông tin trạng thái tương ứng của họ

Bạn cũng có thể sử dụng hàm

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
42 để tạo bao đóng. Đôi khi việc sử dụng hàm
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
42 có thể làm cho nhà máy đóng cửa của bạn ngắn gọn hơn. Đây là một triển khai thay thế của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
21 bằng cách sử dụng hàm
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
42

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
2

Việc triển khai này hoạt động giống như ví dụ ban đầu. Trong trường hợp này, việc sử dụng hàm

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
42 cung cấp cách viết mã
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
21 nhanh chóng và ngắn gọn

Chức năng lấy và trả về. người trang trí

Một cách khác để sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 để trả về các đối tượng hàm là viết các hàm trang trí. Hàm trang trí lấy một đối tượng hàm làm đối số và trả về một đối tượng hàm. Trình trang trí xử lý chức năng được trang trí theo một cách nào đó và trả lại hoặc thay thế nó bằng một chức năng hoặc đối tượng có thể gọi khác

Trình trang trí rất hữu ích khi bạn cần thêm logic bổ sung vào các chức năng hiện có mà không cần sửa đổi chúng. Ví dụ: bạn có thể mã hóa một trình trang trí để ghi nhật ký các lệnh gọi hàm, xác thực các đối số cho một hàm, đo thời gian thực hiện của một hàm đã cho, v.v.

Ví dụ sau đây cho thấy một hàm trang trí mà bạn có thể sử dụng để biết được thời gian thực hiện của một hàm Python đã cho

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
3

Cú pháp

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
49 phía trên tiêu đề của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
50 tương đương với biểu thức
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
51. Trong trường hợp này, bạn có thể nói rằng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
52 đang trang trí cho
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
50

Python chạy các hàm trang trí ngay khi bạn nhập hoặc chạy mô-đun hoặc tập lệnh. Vì vậy, khi bạn gọi

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
50, bạn thực sự đang gọi giá trị trả về của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
52, là đối tượng hàm
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
56. Cuộc gọi đến
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
50 được trang trí sẽ trả về giá trị trung bình của mẫu và cũng sẽ đo thời gian thực hiện của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
50 ban đầu

Trong trường hợp này, bạn sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
59 để đo thời gian thực hiện bên trong decorator.
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
59 sống trong một mô-đun có tên là
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
61 cung cấp một tập hợp các chức năng liên quan đến thời gian.
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
59 trả về thời gian tính bằng giây kể từ kỷ nguyên dưới dạng số dấu phẩy động. Sự khác biệt giữa thời gian trước và sau khi gọi đến
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
50 sẽ cho bạn ý tưởng về thời gian thực hiện chức năng

Ghi chú. Trong

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
50, bạn sử dụng chức năng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
65, tạm dừng việc thực thi mã gọi trong một số giây nhất định. Để hiểu rõ hơn về cách sử dụng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
66, hãy xem Python sleep(). Cách thêm độ trễ thời gian vào mã của bạn

Các ví dụ phổ biến khác về trình trang trí trong Python là

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
67,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
68 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
69. Nếu bạn muốn tìm hiểu sâu hơn về các công cụ trang trí Python, hãy xem Primer on Python Decorators. Bạn cũng có thể xem Python Decorators 101

Loại bỏ các quảng cáo

Trả về các đối tượng do người dùng định nghĩa. Mô hình nhà máy

Câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của Python cũng có thể trả về các đối tượng do người dùng định nghĩa. Nói cách khác, bạn có thể sử dụng các đối tượng tùy chỉnh của riêng mình làm giá trị trả về trong một hàm. Một trường hợp sử dụng phổ biến cho khả năng này là mẫu xuất xưởng

Mẫu xuất xưởng xác định một giao diện để tạo các đối tượng một cách nhanh chóng nhằm đáp ứng các điều kiện mà bạn không thể đoán trước khi viết chương trình. Bạn có thể triển khai một nhà máy gồm các đối tượng do người dùng định nghĩa bằng cách sử dụng hàm nhận một số đối số khởi tạo và trả về các đối tượng khác nhau tùy theo đầu vào cụ thể

Giả sử bạn đang viết một ứng dụng vẽ tranh. Bạn cần nhanh chóng tạo các hình dạng khác nhau để đáp ứng lựa chọn của người dùng. Chương trình của bạn sẽ có hình vuông, hình tròn, hình chữ nhật, v.v. Để tạo các hình dạng đó một cách nhanh chóng, trước tiên bạn cần tạo các lớp hình dạng mà bạn sẽ sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
4

Sau khi bạn có một lớp cho mỗi hình dạng, bạn có thể viết một hàm lấy tên của hình dạng dưới dạng chuỗi và danh sách đối số tùy chọn (

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
71) và đối số từ khóa (
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
72) để tạo và khởi tạo hình dạng một cách nhanh chóng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
5

Hàm này tạo một thể hiện của hình dạng cụ thể và trả về cho người gọi. Bây giờ bạn có thể sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
73 để tạo các đối tượng có hình dạng khác nhau để đáp ứng nhu cầu của người dùng của bạn

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
6

Nếu bạn gọi

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
73 với tên của hình dạng được yêu cầu là một chuỗi, thì bạn sẽ nhận được một phiên bản mới của hình dạng khớp với
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
75 mà bạn vừa chuyển đến nhà máy

Sử dụng >>> return 42 File "", line 1 SyntaxError: 'return' outside function 9 trong khối >>> return 42 File "", line 1 SyntaxError: 'return' outside function 77 … >>> return 42 File "", line 1 SyntaxError: 'return' outside function 78

Khi bạn sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 bên trong câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
77 với mệnh đề
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
78, mệnh đề
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
78 đó luôn được thực thi trước câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9. Điều này đảm bảo rằng mã trong mệnh đề
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
78 sẽ luôn chạy. Kiểm tra ví dụ sau

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
7

Khi bạn gọi

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
85, bạn sẽ nhận được
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
86 được chuyển đổi thành số dấu phẩy động hoặc đối tượng chuỗi. Trước khi làm điều đó, hàm của bạn sẽ chạy mệnh đề
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
78 và in một thông báo ra màn hình của bạn. Bất kỳ mã nào bạn thêm vào mệnh đề
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
78 sẽ được thực thi trước khi hàm chạy câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 của nó

Sử dụng >>> return 42 File "", line 1 SyntaxError: 'return' outside function 9 trong Hàm tạo

Một hàm Python có câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
91 trong phần thân của nó là một hàm tạo. Khi bạn gọi một hàm trình tạo, nó sẽ trả về một trình lặp trình tạo. Vì vậy, bạn có thể nói rằng hàm tạo là một nhà máy tạo

Bạn có thể sử dụng câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 bên trong hàm trình tạo để cho biết rằng trình tạo đã hoàn tất. Câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 sẽ làm cho trình tạo tăng một
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
94. Giá trị trả về sẽ được truyền dưới dạng đối số cho trình khởi tạo của
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
94 và sẽ được gán cho thuộc tính
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
96 của nó

Đây là một trình tạo ra ____1417 và ____1452 theo yêu cầu và sau đó trả về ____039

>>>

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
8

>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
00 trả về một đối tượng trình tạo mang lại
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
417 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
452 theo yêu cầu. Để truy xuất từng số từ đối tượng trình tạo, bạn có thể sử dụng
>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
03, đây là hàm tích hợp để truy xuất mục tiếp theo từ trình tạo Python

Hai cuộc gọi đầu tiên đến

>>> def get_even(numbers):
..     even_nums = [num for num in numbers if not num % 2]
..     return even_nums
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
03 lần lượt truy xuất
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
417 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
452. Trong cuộc gọi thứ ba, trình tạo đã cạn kiệt và bạn nhận được một
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
94. Lưu ý rằng giá trị trả về của hàm tạo (
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
39) trở thành thuộc tính
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
96 của đối tượng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
94

Loại bỏ các quảng cáo

Sự kết luận

Câu lệnh Python

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 cho phép bạn gửi bất kỳ đối tượng Python nào từ các chức năng tùy chỉnh của bạn trở lại mã người gọi. Câu 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 nó, thì bạn sẽ sẵn sàng viết mã các chức năng mạnh mẽ

Trong hướng dẫn này, bạn đã học cách

  • Sử dụng hiệu quả câu lệnh Python
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    9 trong hàm của bạn
  • Trả lại một hoặc nhiều giá trị từ các chức năng của bạn cho mã người gọi
  • Áp dụng các phương pháp hay nhất khi sử dụng câu lệnh
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    9

Ngoài ra, bạn đã học được một số trường hợp sử dụng nâng cao hơn cho câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9, chẳng hạn như cách viết mã hàm đóng của nhà máy và hàm trang trí. Với kiến ​​thức này, bạn sẽ có thể viết các hàm Pythonic, mạnh mẽ và có thể bảo trì hơn bằng Python

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Sử dụng câu lệnh return trong Python một cách hiệu quả

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Hàm trả về đúng hoặc sai python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Leodanis Pozo Ramos

Hàm trả về đúng hoặc sai python
Hàm trả về đúng hoặc sai python

Leodanis là một kỹ sư công nghiệp yêu thích Python và phát triển phần mềm. Anh ấy là một nhà phát triển Python tự học với hơn 6 năm kinh nghiệm. Anh ấy là một nhà văn đam mê kỹ thuật với số lượng bài báo được xuất bản ngày càng tăng trên Real Python và các trang web khác

» Tìm hiểu thêm về Leodanis


Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Hàm trả về đúng hoặc sai python

Aldren

Hàm trả về đúng hoặc sai python

Bryan

Hàm trả về đúng hoặc sai python

Geir Arne

Hàm trả về đúng hoặc sai python

Joanna

Hàm trả về đúng hoặc sai python

Gia-cốp

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Hàm trả về đúng hoặc sai python

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi