Hướng dẫn does return in python need parentheses? - trả về trong python có cần dấu ngoặc đơn không?

0 điểm

Show

Gửi bởi Jen

hơn 9 năm

Đối với tuyên bố trả lại là tốt hơn để sử dụng dấu ngoặc đơn?

return l * w;
or 
return (l * w);

Tôi đã không sử dụng chúng lúc đầu, sau đó nhận thấy một vài người ở đây nói rằng chúng ta nên. Tôi đã thử cả hai cách và nó đã hoạt động. Ai đó có thể đưa ra câu trả lời? Cảm ơn bạn.

Trả lời 51B5CC9052F863DB3D025AC6

Cảm ơn bạn. Tôi tình cờ thấy một cái gì đó sau đó làm rõ nó cho tôi. Giống như trong toán học, bất cứ điều gì bên trong ngoặc đơn đều được xử lý trước. Vì vậy, đối với một tuyên bố trả lại đơn giản, họ không cần thiết.

điểm

Gửi bởi Jen

hơn 9 năm

Đối với tuyên bố trả lại là tốt hơn để sử dụng dấu ngoặc đơn?

Tôi đã không sử dụng chúng lúc đầu, sau đó nhận thấy một vài người ở đây nói rằng chúng ta nên. Tôi đã thử cả hai cách và nó đã hoạt động. Ai đó có thể đưa ra câu trả lời? Cảm ơn bạn.

điểm

Hướng dẫn does return in python need parentheses? - trả về trong python có cần dấu ngoặc đơn không?

hơn 9 năm

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Sử dụng câu lệnh Python Return một cách hiệu quả This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Using the Python return Statement Effectively

Return là gì {} trong Python?return value. You can use them to perform further computation in your programs.

Câu lệnh Python 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 phương thức để gửi kết quả của hàm trở lại cho người gọi. Một câu lệnh trả về bao gồm từ khóa trả về 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.

Có phải hành động trở lại như phá vỡ Python?

  • Break được sử dụng để kết thúc một vòng lặp sớm trong khi return là từ khóa được sử dụng để chuyển lại giá trị trả về cho người gọi của hàm. Nếu nó được sử dụng mà không có đối số, nó chỉ đơn giản là kết thúc chức năng và quay trở lại nơi mã được thực thi trước đó.Python
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    0 statement
    in your functions
  • Câu lệnh Python
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    0 là một 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
    
    0 để làm cho các chức năng 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ề hàm. Bạn có thể sử dụng chúng để thực hiện tính toán thêm trong các chương trình của bạn.single or multiple values from your functions
  • Sử dụng câu lệnh
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    0 một cách hiệu quả là một kỹ năng cốt lõi nếu bạn muốn mã hóa các chức năng tùy chỉnh có pythonic và mạnh mẽ.best practices to observe when using
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    0 statements

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 0 trong các chức năng của bạn

Cách trả về đơn hoặc nhiều giá trị từ các chức năng của bạn

Những thực hành tốt nhất cần quan sát khi sử dụng các tuyên bố

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0subroutines, routines, procedures, or functions depending on the language they use. In some languages, there’s a clear difference between a routine or procedure and a function.

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

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 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 một giá trị hoặc kết quả cuối cùng, sau đó được gửi lại cho mã người gọi. Cả quy trình và chức năng 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ố.procedure is a named code block that performs a set of actions without computing a final value or result. On the other hand, a function is a named code block that performs some actions with the purpose of computing a final value or result, which is then sent back to the caller code. Both procedures and functions can act upon a set of input values, commonly known as arguments.

Trong Python, các loại khối mã được đặt tên này được gọi là chức năng vì chúng luôn gửi lại giá trị cho người gọi. Tài liệu Python xác định một chức năng 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 thông qua không hoặc nhiều đối số có thể được sử dụng trong việc thực hiện cơ thể. (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 người gọi, nhưng bạn sẽ sớm thấy rằng các chức năng có thể trả về bất kỳ đối tượng Python nào cho mã người gọi.

Nói chung, một hàm có các đối số (nếu có), thực hiện một số hoạt động và trả về một giá trị (hoặc đối tượng). Giá trị mà một hàm trả về người gọi thường được gọi là giá trị trả về hàm. Tất cả các hàm Python có giá trị trả về, rõ ràng hoặc ẩn. Bạn sẽ bao gồm sự khác biệt giữa các giá trị trả về rõ ràng và ẩn sau này trong hướng dẫn này.takes arguments (if any), performs some operations, and returns a value (or object). The value that a function returns to the caller is generally known as the function’s return value. All Python functions have a return value, either explicit or implicit. You’ll cover the difference between explicit and implicit return values later in this tutorial.

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

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
7, theo sau là tên của hàm, một danh sách tùy chọn 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 và dấu hai chấm cuối cùng.header that starts with the
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
7 keyword, followed by the name of the function, an optional list of comma-separated arguments inside a required pair of parentheses, and a final colon.

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

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
8 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 từ khóa, 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:code block, or body. Python defines code blocks using indentation instead of brackets,
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
8 and
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
9 keywords, and so on. So, to define a function in Python you can use the following syntax:

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass

Khi bạn mã hóa chức năng Python, bạn cần xác định tiêu đề với từ khóa

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
7, 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 được yêu cầu về mặt cú pháp. Sau đó, bạn cần xác định khối mã chức năng, sẽ bắt đầu một cấp độ thụt bên phải.

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

>>> 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]
1. Loại tuyên bố này rất hữu ích khi bạn cần một câu lệnh trình giữ chỗ trong mã của mình để làm cho nó chính xác về mặt cú pháp, nhưng bạn không cần phải thực hiện bất kỳ hành động nào. Các tuyên bố
>>> 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]
1 còn được gọi là hoạt động null vì họ không thực hiện bất kỳ hành động nào.null operation because they don’t perform any action.

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

function_name(arg1, arg2, ..., argN)

Bạn chỉ cần chuyển các đối số cho một cuộc gọi chức năng chỉ khi 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 một cuộc gọi chức năng. Nếu bạn quên chúng, thì bạn đã thắng được gọi chức năng nhưng tham khảo nó như một đối tượng chức năng.

Để làm cho các chức năng 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
0. Đó là những gì bạn có thể bao gồm từ thời điểm này.

Hiểu tuyên bố Python >>> return 42 File "", line 1 SyntaxError: 'return' outside function 0

Câu lệnh Python

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 là một tuyên bố đặ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 kết quả của chức năng trở lại cho người gọi. Một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 bao gồm từ khóa
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 theo sau là giá trị trả về tùy chọn.Python
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 statement
is a special statement that you can use inside a function or method to send the function’s result back to the caller. A
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 statement consists of the
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 keyword followed by an optional return value.

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

>>> 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,
>>> 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]
9 và
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
0), các bộ sưu tập và trình tự của các đối tượng (
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

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

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

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
3 hoặc
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
4 đối tượng)

Bạn có thể bỏ qua giá trị trả về của một hàm và sử dụng giá trị trả về trần mà không có giá trị trả về. Bạn cũng có thể bỏ qua toàn bộ tuyên bố

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0. Trong cả hai trường hợp, giá trị trả lại sẽ là
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

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

Trong hai phần tiếp theo, bạn sẽ đề cập đến những điều cơ bản về cách thức câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 hoạt động và cách bạn có thể sử dụng nó để trả lại kết quả của chức năng trở lại mã người gọi.

Báo cáo rõ ràng >>> return 42 File "", line 1 SyntaxError: 'return' outside function 0

Một câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 rõ ràng ngay lập tức chấm dứt thực thi chức năng và gửi giá trị trả về lại mã người gọi. Để thêm câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 rõ ràng vào hàm Python, bạn cần sử dụng
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 theo sau là giá trị trả về tùy chọn:explicit
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 statement
immediately terminates a function execution and sends the return value back to the caller code. To add an explicit
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 statement to a Python function, you need to use
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 followed by an optional return value:

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42

Khi bạn xác định

>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
3, bạn sẽ thêm một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 rõ ràng (
>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
5) ở cuối khối mã chức năng.
>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
6 là giá trị trả về rõ ràng của
>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
3. Điều này có nghĩa là bất cứ khi nào bạn gọi
>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
3, chức năng sẽ gửi lại
>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
6 cho người gọi.

Nếu bạn xác định một hàm với câu lệnh

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

>>>

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47

>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
3 trả về giá trị số, 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 hợp lý hoặc kết hợp. Đây là cách mã người gọi có thể tận dụng giá trị trả về hàm 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
0 bên trong định nghĩa hàm hoặc phương thức. Nếu bạn sử dụng nó ở bất cứ nơi nào khác, thì bạn sẽ nhận được
>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None
3:

>>>

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

>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
3 trả về giá trị số, 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 hợp lý hoặc kết hợp. Đây là cách mã người gọi có thể tận dụng giá trị trả về hàm 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
0 bên trong định nghĩa hàm hoặc phương thức. Nếu bạn sử dụng nó ở bất cứ nơi nào khác, thì bạn sẽ nhận được
>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None
3:

Khi bạn sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 bên ngoài một hàm hoặc phương thức, bạn sẽ nhận được một
>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None
3 nói với bạn rằng câu lệnh có thể được sử dụng bên ngoài một hàm.

>>>

>>> 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 mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
3 trả về giá trị số, 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 hợp lý hoặc kết hợp. Đây là cách mã người gọi có thể tận dụng giá trị trả về hàm 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
0 bên trong định nghĩa hàm hoặc phương thức. Nếu bạn sử dụng nó ở bất cứ nơi nào khác, thì bạn sẽ nhận được
>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None
3:

>>>

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

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

>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
3 trả về giá trị số, 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 hợp lý hoặc kết hợp. Đây là cách mã người gọi có thể tận dụng giá trị trả về hàm 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
0 bên trong định nghĩa hàm hoặc phương thức. Nếu bạn sử dụng nó ở bất cứ nơi nào khác, thì bạn sẽ nhận được
>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None
3:

>>>

>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5

Khi bạn sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 bên ngoài một hàm hoặc phương thức, bạn sẽ nhận được một
>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None
3 nói với bạn rằng câu lệnh có thể được sử dụng bên ngoài một hàm.

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 là một đối tượng, bạn có thể trả lại chuỗi, danh sách, bộ dữ liệu, từ điển, chức năng, lớp, phiên bản, đối tượng do người dùng xác định và thậm chí cá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, một cách mã hóa chức năng này:

>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None
6 sử dụng danh sách hiểu biết để tạo danh sách lọc các số lẻ trong
>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None
7 gốc. Sau đó, hàm trả về danh sách kết quả, chỉ chứa số chẵn.implicit
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 statement
that uses
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
7 as a return value:

>>>

>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None

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
0. Để áp dụng ý tưởng này, bạn có thể viết lại
>>> def add_one(x):
...     # No return statement at all
...     result = x + 1
...

>>> value = add_one(5)
>>> value

>>> print(value)
None
6 như sau:

Danh sách hiểu được đánh giá và sau đó chức năng 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
0. 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.

>>>

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
0

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

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
01 và
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
02:

Trong

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
03, bạn không sử dụng một biến cục bộ để lưu trữ kết quả của 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ề. Python trước tiên đánh giá biểu thức
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
04 và sau đó trả về kết quả của đánh giá, trong trường hợp này là giá trị
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
05.

Tuyên bố >>> return 42 File "", line 1 SyntaxError: 'return' outside function 0 tiềm ẩn

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

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 hoặc nếu bạn hoàn toàn bỏ qua câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0, thì Python sẽ hoàn toàn trả về giá trị mặc định cho bạn. Giá trị trả về mặc định đó sẽ luôn là
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

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

>>>

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
1

Giả sử bạn viết một chức năng thêm

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
10 vào số
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
11, nhưng bạn quên cung cấp một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0. 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
0 ngầm sử dụng
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
7 làm giá trị trả về:

>>>

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
2

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

>>> def mean(sample):
...     return sum(sample) / len(sample)
...

>>> mean([1, 2, 3, 4])
2.5
6 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 chỉ bắt đầu với Python. Bạn có thể nghĩ rằng 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 tiến sâu hơn vào Python và bạn bắt đầu viết kịch bản đầu tiên của mình. Bạn mở một trình soạn thảo văn bản và nhập mã sau:

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
3

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
40 lấy hai số, thêm chúng và trả về kết quả. Trên dòng 5, bạn gọi
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
40 đến tổng
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
42 cộng với
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
42. Vì bạn vẫn đang học sự khác biệt giữa trả lại và in một giá trị, bạn có thể mong đợi kịch bản của mình in
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
44 lên màn hình. Tuy nhiên, đó không phải là những gì xảy ra, và bạn không nhận được gì trên màn hình của mình.line 5, you call
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
40 to sum
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
42 plus
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
42. Since you’re still learning the difference between returning and printing a value, you might expect your script to print
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
44 to the screen. However, that’s not what happens, and you get nothing on your screen.

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

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
45 và chạy nó từ dòng lệnh của bạn như sau:

Nếu bạn chạy

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
45 từ dòng lệnh của mình, thì bạn đã giành được bất kỳ kết quả nào trên màn hình của bạn. Điều đó bởi vì khi bạn chạy một tập lệnh, các giá trị trả về của các hàm mà bạn gọi trong tập lệnh don lồng được in lên màn hình như chúng làm trong một phiên tương tác.

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

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
40 trên màn hình của bạn, thì bạn cần gọi rõ ràng
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
28. Kiểm tra bản cập nhật sau của
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
45:

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
4

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

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
45, bạn sẽ thấy số
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
44 trên màn hình của bạn.

Vì vậy, nếu bạn 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ỳ cuộc gọi chức năng nào trực tiếp đến màn hình của bạn. Nhưng nếu bạn đang viết một tập lệnh và bạn muốn xem một hàm giá trị trả về hàm, thì bạn cần sử dụng rõ ràng

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
28.

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
0 để 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 biện pháp thống kê. Để mã hóa chức năng đó, bạn có thể sử dụng mô -đun tiêu chuẩn Python

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
54, cung cấp một số chức năng để tính toán số liệu thống kê toán học của dữ liệu số.

Ở đây, một triển khai có thể thực hiện chức năng của bạn:

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
5

Trong

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
55, 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
0 bằng cách trả về giá trị trung bình, trung bình 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 một danh sách được phân tách bằng dấu phẩy theo thứ tự bạn muốn chúng được trả về.

Khi bạn đã mã hóa

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
55, bạn có thể tận dụng một tính năng Python mạnh mẽ được gọi là không thể giải nén để giải nén ba biện pháp thành ba biến tách biệt hoặc bạn chỉ có thể lưu trữ mọi thứ trong một biến:

>>>

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
6

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

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
55 vào các biến
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
59,
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
60 và
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
61. Lưu ý rằng trong ví dụ cuối cùng, bạn lưu trữ tất cả các giá trị trong một biến duy nhất,
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
62, hóa ra là Python
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

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

Hàm tích hợp

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
64 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 số của hai giá trị đầu vào và phần còn lại của bộ phận:

>>>

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
7

Cuộc gọi đến

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
64 trả về một tuple chứa thương số 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 dưới dạng đối số. Đây là một ví dụ về một hàm có nhiều giá trị trả về.

Sử dụng Tuyên bố Python >>> return 42 File "", line 1 SyntaxError: 'return' outside function 0: Thực tiễn tốt nhất

Cho đến nay, bạn đã đề cập đến những điều 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
0. Bây giờ bạn biết cách viết các chức năng 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 một câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 rõ ràng với giá trị trả về rõ ràng cho một hàm đã cho, thì Python sẽ thêm nó cho bạn. Giá trị đó sẽ là
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

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

Trong phần này, bạn sẽ bao gồm một số ví dụ sẽ hướng dẫn bạn thông qua một tập hợp các thực tiễn lập trình tốt để sử dụng một cách hiệu quả câu lệnh

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

Trả lại >>> def get_even(numbers): ... return [num for num in numbers if not num % 2] ... >>> get_even([1, 2, 3, 4, 5, 6]) [2, 4, 6] 7 một cách rõ ràng

Một số lập trình viên dựa vào tuyên bố

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 ngầm mà Python thêm vào bất kỳ chức năng nào mà không có một chức năng 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à thủ tục.procedure.

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

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
73 rõ ràng vào các chức năng của bạn. 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 chức năng 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
    
    0 rõ ràng và hữu ích, thì bạn có thể bỏ qua trả lại
    >>> def get_even(numbers):
    ...     return [num for num in numbers if not num % 2]
    ...
    
    >>> get_even([1, 2, 3, 4, 5, 6])
    [2, 4, 6]
    
    7 vì làm điều đó sẽ là thừa và khó hiểu. Bạn cũng có thể sử dụng giá trị trả lại mà không có giá trị trả lại chỉ để làm rõ ý định của bạn là trở về từ chức năng.

  • Nếu chức năng của bạn có nhiều câu lệnh

    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    0 và trả về
    >>> def get_even(numbers):
    ...     return [num for num in numbers if not num % 2]
    ...
    
    >>> get_even([1, 2, 3, 4, 5, 6])
    [2, 4, 6]
    
    7 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
    def function_name(arg1, arg2,..., argN):
        # Function's code goes here...
        pass
    
    73 thay vì dựa vào hành vi mặc định của Python.

Những thực hành này có thể cải thiện khả năng đọc và khả năng duy trì của 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ả lại

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

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
7, bạn có thể sử dụng một trong ba phương pháp có thể:

  1. Bỏ qua câu lệnh
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    0 và dựa vào hành vi mặc định là trả về
    >>> def get_even(numbers):
    ...     return [num for num in numbers if not num % 2]
    ...
    
    >>> get_even([1, 2, 3, 4, 5, 6])
    [2, 4, 6]
    
    7.
  2. Sử dụng một
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    0 trần mà không có giá trị trả về, cũng trả về
    >>> def get_even(numbers):
    ...     return [num for num in numbers if not num % 2]
    ...
    
    >>> get_even([1, 2, 3, 4, 5, 6])
    [2, 4, 6]
    
    7.
  3. Trả lại
    >>> def get_even(numbers):
    ...     return [num for num in numbers if not num % 2]
    ...
    
    >>> get_even([1, 2, 3, 4, 5, 6])
    [2, 4, 6]
    
    7 một cách rõ ràng.

Ở đây, cách thức hoạt động của nó trong thực tế:

>>>

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
8

Có hay không trả lại

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

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
7 một cách rõ ràng là một 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
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
73 rõ ràng có thể tránh các vấn đề về khả năng duy 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 mà don hành xử như Python.

Ghi nhớ giá trị trả về

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

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

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
7 cho bạn. Điều này có thể khiến các lỗi tinh tế có thể khó khăn cho một nhà phát triển Python khởi đầu để 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
0 ngay sau khi tiêu đề của hàm. Sau đó, bạn có thể thực hiện một đường chuyền thứ hai để viết cơ thể chức năng. Dưới đây, một mẫu mà bạn có thể sử dụng khi mã hóa các chức năng Python của mình:

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
9

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 bỏ lỡ câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0. Với cách tiếp cận 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 khi bạn biết rằng hàm hoạt động.

Thực tiễn 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 dễ 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, nó là một thực tế phổ biến để 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 sử dụng trở nên quá phức tạp, thì thực tế này có thể dẫn đến các chức năng khó hiểu, gỡ lỗi và duy trì.

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

Xem xét chức năng sau đây tính toán phương sai của mẫu dữ liệu số:

>>>

function_name(arg1, arg2, ..., argN)
0

Có hay không trả lại

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

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
7 một cách rõ ràng là một 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
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
73 rõ ràng có thể tránh các vấn đề về khả năng duy 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 mà don hành xử như Python.

Ghi nhớ giá trị trả về

>>>

function_name(arg1, arg2, ..., argN)
1

Có hay không trả lại

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

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
7 một cách rõ ràng là một 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
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
73 rõ ràng có thể tránh các vấn đề về khả năng duy 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 mà don hành xử như Python.

Ghi nhớ giá trị trả về

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

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

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
7 cho bạn. Điều này có thể khiến các lỗi tinh tế có thể khó khăn cho một nhà phát triển Python khởi đầu để 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 0 ngay sau khi tiêu đề của hàm. Sau đó, bạn có thể thực hiện một đường chuyền thứ hai để viết cơ thể chức năng. Dưới đây, một mẫu mà bạn có thể sử dụng khi mã hóa các chức năng Python của mình:

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 bỏ lỡ câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0. Với cách tiếp cận 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 khi bạn biết rằng hàm hoạt động.side effect can be, for example, printing something to the screen, modifying a global variable, updating the state of an object, writing some text to a file, and so on.

Thực tiễn 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 dễ 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

Để hiểu một chương trình sửa đổi các biến toàn cầu, bạn cần nhận thức được tất cả các phần của chương trình có thể thấy, truy cập và thay đổi các biến đó. Vì vậy, thực tiễn tốt khuyến nghị viết các chức năng độc lập có một số đối số và trả về một giá trị (hoặ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ầu.self-contained functions that take some arguments and return a useful value (or values) without causing any side effect on global variables.

Ngoài ra, các chức năng với câu lệnh

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

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

function_name(arg1, arg2, ..., argN)
01, cũng được coi là một thực tiễn lập trình xấu trong Python:

>>>

function_name(arg1, arg2, ..., argN)
2

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

function_name(arg1, arg2, ..., argN)
02, với giá trị ban đầu là
function_name(arg1, arg2, ..., argN)
03. Bên trong
function_name(arg1, arg2, ..., argN)
04, bạn sử dụng câu lệnh
function_name(arg1, arg2, ..., argN)
01 để cho biết chức năng rằng bạn muốn sửa đổi một biến toàn cầu. Tuyên bố cuối cùng tăng
function_name(arg1, arg2, ..., argN)
02 bởi
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
10.

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

function_name(arg1, arg2, ..., argN)
04 sẽ phụ thuộc vào giá trị ban đầu của
function_name(arg1, arg2, ..., argN)
02. Các giá trị ban đầu khác nhau cho
function_name(arg1, arg2, ..., argN)
02 sẽ tạo ra các kết quả khác nhau, do đó, kết quả của hàm có 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

function_name(arg1, arg2, ..., argN)
04 khép kín, lấy các đối số và trả về một giá trị mạch lạc chỉ phụ thuộc vào các đối số đầu vào:

>>>

function_name(arg1, arg2, ..., argN)
3

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

function_name(arg1, arg2, ..., argN)
02, với giá trị ban đầu là
function_name(arg1, arg2, ..., argN)
03. Bên trong
function_name(arg1, arg2, ..., argN)
04, bạn sử dụng câu lệnh
function_name(arg1, arg2, ..., argN)
01 để cho biết chức năng rằng bạn muốn sửa đổi một biến toàn cầu. Tuyên bố cuối cùng tăng
function_name(arg1, arg2, ..., argN)
02 bởi
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
10.

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

function_name(arg1, arg2, ..., argN)
04 sẽ phụ thuộc vào giá trị ban đầu của
function_name(arg1, arg2, ..., argN)
02. Các giá trị ban đầu khác nhau cho
function_name(arg1, arg2, ..., argN)
02 sẽ tạo ra các kết quả khác nhau, do đó, kết quả của hàm có 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

function_name(arg1, arg2, ..., argN)
04 khép kín, lấy các đối số và trả về một giá trị mạch lạc chỉ phụ thuộc vào các đối số đầu vào:self-contained functions with an explicit
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 statement that returns a coherent and meaningful value.

Bây giờ kết quả của việc gọi function_name(arg1, arg2, ..., argN) 04 chỉ phụ thuộc vào các đối số đầu vào thay vì vào giá trị ban đầu là function_name(arg1, arg2, ..., argN) 02. Điều này làm cho chức năng mạnh mẽ và dễ kiểm tra hơn.

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

function_name(arg1, arg2, ..., argN)
02, bạn có thể thực hiện rõ ràng với một cuộc gọi đến
function_name(arg1, arg2, ..., argN)
04. 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ì xảy ra với
function_name(arg1, arg2, ..., argN)
02 trong suốt mã của bạn.

Nói chung, nó là một thực tiễn tốt để tránh các chức năng sửa đổi các biến toàn cầu. Nếu có thể, hãy cố gắng viết các chức năng độc lập với một câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 rõ ràng trả về một giá trị mạch lạc và có ý nghĩa.

Sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 với các điều kiện

Các hàm Python không bị hạn chế để có một tuyên bố

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 duy nhất. 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
0, thì cái đầu tiên gặp phải sẽ xác định kết thúc thực thi chức năng và cả giá trị trả về của nó.

>>>

function_name(arg1, arg2, ..., argN)
4

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

function_name(arg1, arg2, ..., argN)
02, với giá trị ban đầu là
function_name(arg1, arg2, ..., argN)
03. Bên trong
function_name(arg1, arg2, ..., argN)
04, bạn sử dụng câu lệnh
function_name(arg1, arg2, ..., argN)
01 để cho biết chức năng rằng bạn muốn sửa đổi một biến toàn cầu. Tuyên bố cuối cùng tăng
function_name(arg1, arg2, ..., argN)
02 bởi
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
10.

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

function_name(arg1, arg2, ..., argN)
04 sẽ phụ thuộc vào giá trị ban đầu của
function_name(arg1, arg2, ..., argN)
02. Các giá trị ban đầu khác nhau cho
function_name(arg1, arg2, ..., argN)
02 sẽ tạo ra các kết quả khác nhau, do đó, kết quả của hàm có thể được kiểm soát bởi chính hàm.

>>>

function_name(arg1, arg2, ..., argN)
5

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

function_name(arg1, arg2, ..., argN)
02, với giá trị ban đầu là
function_name(arg1, arg2, ..., argN)
03. Bên trong
function_name(arg1, arg2, ..., argN)
04, bạn sử dụng câu lệnh
function_name(arg1, arg2, ..., argN)
01 để cho biết chức năng rằng bạn muốn sửa đổi một biến toàn cầu. Tuyên bố cuối cùng tăng
function_name(arg1, arg2, ..., argN)
02 bởi
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
10.

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

function_name(arg1, arg2, ..., argN)
04 sẽ phụ thuộc vào giá trị ban đầu của
function_name(arg1, arg2, ..., argN)
02. Các giá trị ban đầu khác nhau cho
function_name(arg1, arg2, ..., argN)
02 sẽ tạo ra các kết quả khác nhau, do đó, kết quả của hàm có thể được kiểm soát bởi chính hàm.

>>>

function_name(arg1, arg2, ..., argN)
6

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

function_name(arg1, arg2, ..., argN)
02, với giá trị ban đầu là
function_name(arg1, arg2, ..., argN)
03. Bên trong
function_name(arg1, arg2, ..., argN)
04, bạn sử dụng câu lệnh
function_name(arg1, arg2, ..., argN)
01 để cho biết chức năng rằng bạn muốn sửa đổi một biến toàn cầu. Tuyên bố cuối cùng tăng
function_name(arg1, arg2, ..., argN)
02 bởi
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
10.

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

function_name(arg1, arg2, ..., argN)
04 sẽ phụ thuộc vào giá trị ban đầu của
function_name(arg1, arg2, ..., argN)
02. Các giá trị ban đầu khác nhau cho
function_name(arg1, arg2, ..., argN)
02 sẽ tạo ra các kết quả khác nhau, do đó, kết quả của hàm có thể được kiểm soát bởi chính hàm.

>>>

function_name(arg1, arg2, ..., argN)
7

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

function_name(arg1, arg2, ..., argN)
02, với giá trị ban đầu là
function_name(arg1, arg2, ..., argN)
03. Bên trong
function_name(arg1, arg2, ..., argN)
04, bạn sử dụng câu lệnh
function_name(arg1, arg2, ..., argN)
01 để cho biết chức năng rằng bạn muốn sửa đổi một biến toàn cầu. Tuyên bố cuối cùng tăng
function_name(arg1, arg2, ..., argN)
02 bởi
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
10.

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

function_name(arg1, arg2, ..., argN)
04 sẽ phụ thuộc vào giá trị ban đầu của
function_name(arg1, arg2, ..., argN)
02. Các giá trị ban đầu khác nhau cho
function_name(arg1, arg2, ..., argN)
02 sẽ tạo ra các kết quả khác nhau, do đó, kết quả của hàm có thể được kiểm soát bởi chính hàm.

Trở về function_name(arg1, arg2, ..., argN) 62 hoặc function_name(arg1, arg2, ..., argN) 63

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

function_name(arg1, arg2, ..., argN)
27 và
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 là khi bạn mã hóa một hàm có giá trị vị ngữ hoặc boolean. Loại chức năng này trả về
function_name(arg1, arg2, ..., argN)
62 hoặc
function_name(arg1, arg2, ..., argN)
63 theo một điều kiện nhất định.

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

function_name(arg1, arg2, ..., argN)
68 và
function_name(arg1, arg2, ..., argN)
69 và trả về
function_name(arg1, arg2, ..., argN)
62 nếu
function_name(arg1, arg2, ..., argN)
68 chia hết cho
function_name(arg1, arg2, ..., argN)
69. Nếu không, chức năng sẽ trả về
function_name(arg1, arg2, ..., argN)
63. Đây là một triển khai có thể:

>>>

function_name(arg1, arg2, ..., argN)
8

function_name(arg1, arg2, ..., argN)
74 Trả về
function_name(arg1, arg2, ..., argN)
62 Nếu phần còn lại chia
function_name(arg1, arg2, ..., argN)
68 cho
function_name(arg1, arg2, ..., argN)
69 bằng
function_name(arg1, arg2, ..., argN)
03. Nếu không, nó trả về
function_name(arg1, arg2, ..., argN)
63. Lưu ý rằng trong Python, giá trị
function_name(arg1, arg2, ..., argN)
03 là giả, vì vậy bạn cần sử dụng toán tử
function_name(arg1, arg2, ..., argN)
81 để phủ nhận giá trị sự thật của điều kiện.

Đôi khi, bạn sẽ viết các chức năng vị ngữ liên quan đến các nhà khai thác như sau:

  • Các toán tử so sánh
    function_name(arg1, arg2, ..., argN)
    
    82,
    function_name(arg1, arg2, ..., argN)
    
    83,
    function_name(arg1, arg2, ..., argN)
    
    84,
    function_name(arg1, arg2, ..., argN)
    
    85,
    function_name(arg1, arg2, ..., argN)
    
    86 và
    function_name(arg1, arg2, ..., argN)
    
    87
  • Nhà điều hành thành viên
    function_name(arg1, arg2, ..., argN)
    
    88
  • Toán tử nhận dạng
    function_name(arg1, arg2, ..., argN)
    
    89
  • Nhà điều hành Boolean
    function_name(arg1, arg2, ..., argN)
    
    81

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
0 của mình. Điều này là có thể bởi vì các toán tử này trả về
function_name(arg1, arg2, ..., argN)
62 hoặc
function_name(arg1, arg2, ..., argN)
63. Theo ý tưởng này, ở đây, một triển khai mới của
function_name(arg1, arg2, ..., argN)
74:

>>>

function_name(arg1, arg2, ..., argN)
9

function_name(arg1, arg2, ..., argN)
74 Trả về
function_name(arg1, arg2, ..., argN)
62 Nếu phần còn lại chia
function_name(arg1, arg2, ..., argN)
68 cho
function_name(arg1, arg2, ..., argN)
69 bằng
function_name(arg1, arg2, ..., argN)
03. Nếu không, nó trả về
function_name(arg1, arg2, ..., argN)
63. Lưu ý rằng trong Python, giá trị
function_name(arg1, arg2, ..., argN)
03 là giả, vì vậy bạn cần sử dụng toán tử
function_name(arg1, arg2, ..., argN)
81 để phủ nhận giá trị sự thật của điều kiện.

Đôi khi, bạn sẽ viết các chức năng vị ngữ liên quan đến các nhà khai thác như sau:

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
0

function_name(arg1, arg2, ..., argN)
74 Trả về
function_name(arg1, arg2, ..., argN)
62 Nếu phần còn lại chia
function_name(arg1, arg2, ..., argN)
68 cho
function_name(arg1, arg2, ..., argN)
69 bằng
function_name(arg1, arg2, ..., argN)
03. Nếu không, nó trả về
function_name(arg1, arg2, ..., argN)
63. Lưu ý rằng trong Python, giá trị
function_name(arg1, arg2, ..., argN)
03 là giả, vì vậy bạn cần sử dụng toán tử
function_name(arg1, arg2, ..., argN)
81 để phủ nhận giá trị sự thật của điều kiện.

Đôi khi, bạn sẽ viết các chức năng vị ngữ liên quan đến các nhà khai thác như sau:

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
1

function_name(arg1, arg2, ..., argN)
74 Trả về
function_name(arg1, arg2, ..., argN)
62 Nếu phần còn lại chia
function_name(arg1, arg2, ..., argN)
68 cho
function_name(arg1, arg2, ..., argN)
69 bằng
function_name(arg1, arg2, ..., argN)
03. Nếu không, nó trả về
function_name(arg1, arg2, ..., argN)
63. Lưu ý rằng trong Python, giá trị
function_name(arg1, arg2, ..., argN)
03 là giả, vì vậy bạn cần sử dụng toán tử
function_name(arg1, arg2, ..., argN)
81 để phủ nhận giá trị sự thật của điều kiện.

  1. Đôi khi, bạn sẽ viết các chức năng vị ngữ liên quan đến các nhà khai thác như sau:
  2. Các toán tử so sánh
    function_name(arg1, arg2, ..., argN)
    
    82,
    function_name(arg1, arg2, ..., argN)
    
    83,
    function_name(arg1, arg2, ..., argN)
    
    84,
    function_name(arg1, arg2, ..., argN)
    
    85,
    function_name(arg1, arg2, ..., argN)
    
    86 và
    function_name(arg1, arg2, ..., argN)
    
    87
  3. Nhà điều hành thành viên
    function_name(arg1, arg2, ..., argN)
    
    88

Toán tử nhận dạng

function_name(arg1, arg2, ..., argN)
89

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
2

function_name(arg1, arg2, ..., argN)
74 Trả về
function_name(arg1, arg2, ..., argN)
62 Nếu phần còn lại chia
function_name(arg1, arg2, ..., argN)
68 cho
function_name(arg1, arg2, ..., argN)
69 bằng
function_name(arg1, arg2, ..., argN)
03. Nếu không, nó trả về
function_name(arg1, arg2, ..., argN)
63. Lưu ý rằng trong Python, giá trị
function_name(arg1, arg2, ..., argN)
03 là giả, vì vậy bạn cần sử dụng toán tử
function_name(arg1, arg2, ..., argN)
81 để phủ nhận giá trị sự thật của điều kiện.

Đôi khi, bạn sẽ viết các chức năng vị ngữ liên quan đến các nhà khai thác như sau:

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
3

function_name(arg1, arg2, ..., argN)
74 Trả về
function_name(arg1, arg2, ..., argN)
62 Nếu phần còn lại chia
function_name(arg1, arg2, ..., argN)
68 cho
function_name(arg1, arg2, ..., argN)
69 bằng
function_name(arg1, arg2, ..., argN)
03. Nếu không, nó trả về
function_name(arg1, arg2, ..., argN)
63. Lưu ý rằng trong Python, giá trị
function_name(arg1, arg2, ..., argN)
03 là giả, vì vậy bạn cần sử dụng toán tử
function_name(arg1, arg2, ..., argN)
81 để phủ nhận giá trị sự thật của điều kiện.

Đôi khi, bạn sẽ viết các chức năng vị ngữ liên quan đến các nhà khai thác như sau:

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
4

function_name(arg1, arg2, ..., argN)
74 Trả về
function_name(arg1, arg2, ..., argN)
62 Nếu phần còn lại chia
function_name(arg1, arg2, ..., argN)
68 cho
function_name(arg1, arg2, ..., argN)
69 bằng
function_name(arg1, arg2, ..., argN)
03. Nếu không, nó trả về
function_name(arg1, arg2, ..., argN)
63. Lưu ý rằng trong Python, giá trị
function_name(arg1, arg2, ..., argN)
03 là giả, vì vậy bạn cần sử dụng toán tử
function_name(arg1, arg2, ..., argN)
81 để phủ nhận giá trị sự thật của điều kiện.

Đôi khi, bạn sẽ viết các chức năng vị ngữ liên quan đến các nhà khai thác như sau:

Các toán tử so sánh

function_name(arg1, arg2, ..., argN)
82,
function_name(arg1, arg2, ..., argN)
83,
function_name(arg1, arg2, ..., argN)
84,
function_name(arg1, arg2, ..., argN)
85,
function_name(arg1, arg2, ..., argN)
86 và
function_name(arg1, arg2, ..., argN)
87short-circuit. It breaks the loop execution and makes the function return immediately. To better understand this behavior, you can write a function that emulates
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
36. This built-in function takes an iterable and returns
function_name(arg1, arg2, ..., argN)
62 if at least one of its items is truthy.

Nhà điều hành thành viên

function_name(arg1, arg2, ..., argN)
88

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
5

Toán tử nhận dạng

function_name(arg1, arg2, ..., argN)
89

Nhà điều hành Boolean

function_name(arg1, arg2, ..., argN)
81short-circuit evaluation. For example, suppose that you pass an iterable that contains a million items. If the first item in that iterable happens to be true, then the loop runs only one time rather than a million times. This can save you a lot of processing time when running your code.

Đ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
0 bên trong một vòng lặp, bạn cần kết thúc câu lệnh trong một câu lệnh
function_name(arg1, arg2, ..., argN)
27. Nếu không, vòng lặp sẽ luôn bị vỡ trong lần lặp đầu tiên của nó.

Nhận ra mã chết

Ngay khi một hàm nhấn vào câu lệnh

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0, nó sẽ chấm dứt mà không thực thi bất kỳ mã tiếp theo nào. Do đó, mã xuất hiện sau tuyên bố chức năng ____ ____5050 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 hàm là vô dụng và khó hiểu.dead code. The Python interpreter totally ignores dead code when running your functions. So, having that kind of code in a function is useless and confusing.

Xem xét chức năng sau, thêm mã sau câu lệnh

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

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
6

Tuyên bố

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
52 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 của hàm
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0. Xác định mã chết và xóa nó là một thực tế 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 sử dụng các 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
0, thì bạn có thể có mã sau một tuyên bố
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 mà won đã chết miễn là nó bên ngoài tuyên bố ____2227:

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
7

Tuyên bố

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
52 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 của hàm
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0. Xác định mã chết và xóa nó là một thực tế 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 sử dụng các 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 0, thì bạn có thể có mã sau một tuyên bố >>> return 42 File "", line 1 SyntaxError: 'return' outside function 0 mà won đã chết miễn là nó bên ngoài tuyên bố ____2227:

Mặc dù cuộc gọi đến

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
28 là sau tuyên bố
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0, nhưng nó không phải là mã chết. Khi
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
59 được đánh giá thành
function_name(arg1, arg2, ..., argN)
63, cuộc gọi
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
28 được chạy và bạn nhận được
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
31 được in lên màn hình của bạn.

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

  1. Khi bạn 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
    
    0, bạn có thể xem xét sử dụng đối tượng
    >>> def return_42():
    ...     return 42  # An explicit return statement
    ...
    
    >>> return_42()  # The caller code gets 42
    42
    
    64 để làm cho các hàm của bạn dễ đọc hơn.
    >>> def return_42():
    ...     return 42  # An explicit return statement
    ...
    
    >>> return_42()  # The caller code gets 42
    42
    
    65 là một lớp thu thập trả về một lớp con của
    >>> def get_even(numbers):
    ...     return [num for num in numbers if not num % 2]
    ...
    
    >>> get_even([1, 2, 3, 4, 5, 6])
    [2, 4, 6]
    
    2 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 cách sử dụng ký hiệu DOT hoặc thao tác lập chỉ mục.
    holds the name of the tuple-like class that you’re creating. It needs to be a string.
  2. Bộ khởi tạo của
    >>> def return_42():
    ...     return 42  # An explicit return statement
    ...
    
    >>> return_42()  # The caller code gets 42
    42
    
    65 có một số đối số. Tuy nhiên, để bắt đầu sử dụng
    >>> def return_42():
    ...     return 42  # An explicit return statement
    ...
    
    >>> return_42()  # The caller code gets 42
    42
    
    65 trong mã của mình, bạn chỉ cần biết về hai cái đầu tiên:
    holds the names of the fields or attributes of the tuple-like class. It can be a sequence of strings such as
    >>> def return_42():
    ...     return 42  # An explicit return statement
    ...
    
    >>> return_42()  # The caller code gets 42
    42
    
    71 or a single string with each name separated by whitespace or commas, such as
    >>> def return_42():
    ...     return 42  # An explicit return statement
    ...
    
    >>> return_42()  # The caller code gets 42
    42
    
    72 or
    >>> def return_42():
    ...     return 42  # An explicit return statement
    ...
    
    >>> return_42()  # The caller code gets 42
    42
    
    73.

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
69 giữ tên của lớp giống như tuple mà bạn đang tạo ra. Nó cần phải là một chuỗi.

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
8

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
70 giữ tên của các trường hoặc thuộc tính của lớp giống như tuple. Nó có thể là một chuỗi các chuỗi như
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
71 hoặc một chuỗi duy nhất 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ư
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
72 hoặc
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
73.

Sử dụng

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
65 khi bạn cần trả về nhiều giá trị có thể làm cho các chức năng của bạn dễ đọc hơn mà không cần quá nhiều nỗ lực. Xem xét bản cập nhật sau của
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
55 bằng cách sử dụng
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
65 làm giá trị trả về:

Bên trong

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
55, bạn tạo một
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
65 được gọi là
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
79. Đố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 DOT 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à
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
80,
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
81 và
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
82.

>>>

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
9

Tuyên bố

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
52 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 của hàm
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0. Xác định mã chết và xóa nó là một thực tế 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 sử dụng các 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
0, thì bạn có thể có mã sau một tuyên bố
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 mà won đã chết miễn là nó bên ngoài tuyên bố ____2227:

Mặc dù cuộc gọi đến def function_name(arg1, arg2,..., argN): # Function's code goes here... pass 28 là sau tuyên bố >>> return 42 File "", line 1 SyntaxError: 'return' outside function 0, nhưng nó không phải là mã chết. Khi >>> def return_42(): ... return 42 # An explicit return statement ... >>> return_42() # The caller code gets 42 42 59 được đánh giá thành function_name(arg1, arg2, ..., argN) 63, cuộc gọi def function_name(arg1, arg2,..., argN): # Function's code goes here... pass 28 được chạy và bạn nhận được def function_name(arg1, arg2,..., argN): # Function's code goes here... pass 31 được in lên màn hình của bạn.

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

Khi bạn 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
0, bạn có thể xem xét sử dụng đối tượng
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
64 để làm cho các hàm của bạn dễ đọc hơn.
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
65 là một lớp thu thập trả về một lớp con của
>>> def get_even(numbers):
...     return [num for num in numbers if not num % 2]
...

>>> get_even([1, 2, 3, 4, 5, 6])
[2, 4, 6]
2 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 cách sử dụng ký hiệu DOT hoặc thao tác lập chỉ mục.closure.

Bộ khởi tạo của

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
65 có một số đối số. Tuy nhiên, để bắt đầu sử dụng
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
65 trong mã của mình, bạn chỉ cần biết về hai cái đầu tiên:

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
69 giữ tên của lớp giống như tuple mà bạn đang tạo ra. Nó cần phải là một chuỗi.

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
0

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
70 giữ tên của các trường hoặc thuộc tính của lớp giống như tuple. Nó có thể là một chuỗi các chuỗi như
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
71 hoặc một chuỗi duy nhất 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ư
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
72 hoặc
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
73.

Việc triển khai

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
90 sau đây sử dụng đóng cửa để giữ lại giá trị của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 giữa các cuộc gọi:

>>>

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
1

Bên trong

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
90, bạn xác định hàm bên trong được gọi là
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
00 và trả lại mà không gọi nó. Đối tượng chức năng bạn trả về là một đóng cửa giữ lại thông tin về trạng thái của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91. Nói cách khác, nó nhớ giá trị của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 giữa các cuộc gọi. Đó là lý do tại sao
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
03 nhớ rằng
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 bằng
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
42 và
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
06 nhớ rằng
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 bằng
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
08.

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

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
03 và
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
06 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 chức năng

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11 để tạo đóng cửa. Đôi khi việc sử dụng chức năng
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11 có thể làm cho nhà máy đóng cửa của bạn ngắn gọn hơn. Tại đây, một triển khai thay thế của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
90 bằng cách sử dụng hàm
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11:

>>>

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
2

Bên trong

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
90, bạn xác định hàm bên trong được gọi là
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
00 và trả lại mà không gọi nó. Đối tượng chức năng bạn trả về là một đóng cửa giữ lại thông tin về trạng thái của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91. Nói cách khác, nó nhớ giá trị của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 giữa các cuộc gọi. Đó là lý do tại sao
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
03 nhớ rằng
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 bằng
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
42 và
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
06 nhớ rằng
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 bằng
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
08.

Lưu ý rằng bạn có thể tự do sử dụng lại >>> num = return_42() >>> num 42 >>> return_42() * 2 84 >>> return_42() + 5 47 03 và >>> num = return_42() >>> num 42 >>> return_42() * 2 84 >>> return_42() + 5 47 06 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 chức năng

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11 để tạo đóng cửa. Đôi khi việc sử dụng chức năng
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11 có thể làm cho nhà máy đóng cửa của bạn ngắn gọn hơn. Tại đây, một triển khai thay thế của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
90 bằng cách sử dụng hàm
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11:decorator function takes a function object as an argument and returns a function object. The decorator processes the decorated function in some way and returns it or replaces it with another function or callable object.

Việc thực hiện 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

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11 cung cấp một cách nhanh chóng và ngắn gọn để mã
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
90.

Chức năng lấy và trả lại: Người trang trí

>>>

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
3

Bên trong

>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
90, bạn xác định hàm bên trong được gọi là
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
00 và trả lại mà không gọi nó. Đối tượng chức năng bạn trả về là một đóng cửa giữ lại thông tin về trạng thái của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91. Nói cách khác, nó nhớ giá trị của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 giữa các cuộc gọi. Đó là lý do tại sao
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
03 nhớ rằng
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 bằng
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
42 và
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
06 nhớ rằng
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
91 bằng
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
08.

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

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
03 và
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
06 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 chức năng

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11 để tạo đóng cửa. Đôi khi việc sử dụng chức năng
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11 có thể làm cho nhà máy đóng cửa của bạn ngắn gọn hơn. Tại đây, một triển khai thay thế của
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
90 bằng cách sử dụng hàm
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11:

Việc thực hiện 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

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
11 cung cấp một cách nhanh chóng và ngắn gọn để mã
>>> def return_42():
...     return 42  # An explicit return statement
...

>>> return_42()  # The caller code gets 42
42
90.

Chức năng lấy và trả lại: 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
0 để trả về các đối tượng chức năng là viết các chức năng trang trí. Một 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. Bộ 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 được.

Các nhà trang trí rất hữu ích khi bạn cần thêm logic bổ sung cho 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 cuộc gọi chức năng, xác thực các đối số vào một hàm, đo thời gian thực hiện của một hàm nhất định, v.v.

Ví dụ sau đây cho thấy chức năng trang trí mà bạn có thể sử dụng để có ý tưởng về thời gian thực hiện của một hàm Python nhất định:

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
4

Cú pháp

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
18 phía trên tiêu đề của
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
19 tương đương với biểu thức
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
20. Trong trường hợp này, bạn có thể nói rằng
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
21 đang trang trí
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
19.

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
5

Python chạy các chức năng 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

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
19, bạn thực sự gọi giá trị trả lại của
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
21, đây là đối tượng hàm
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
25. Cuộc gọi đến trang trí
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
19 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
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
19 ban đầu.

>>>

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
6

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

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
28 để đo thời gian thực hiện bên trong người trang trí.
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
28 sống trong một mô-đun có tên
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
30 cung cấp một tập hợp các chức năng liên quan đến thời gian.
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
28 trả về thời gian tính bằng giây kể từ kỷ nguyên như một số điểm nổi. Sự khác biệt giữa thời gian trước và sau cuộc gọi đến
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
19 sẽ cho bạn ý tưởng về thời gian thực hiện chức năng.

Sử dụng >>> return 42 File "", line 1 SyntaxError: 'return' outside function 0 trong các khối >>> num = return_42() >>> num 42 >>> return_42() * 2 84 >>> return_42() + 5 47 43 >>> num = return_42() >>> num 42 >>> return_42() * 2 84 >>> return_42() + 5 47 44

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

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 bên trong câu lệnh
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
43 với mệnh đề
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
44, mệnh đề
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
44 luôn được thực thi trước câu lệnh
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0. Điều này đảm bảo rằng mã trong mệnh đề
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
44 sẽ luôn chạy. Kiểm tra ví dụ sau:

>>>

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
7

Khi bạn gọi

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
51, bạn sẽ được chuyển đổi thành số dấu phẩy động hoặc một đối tượng chuỗi. Trước khi làm điều đó, chức năng của bạn chạy mệnh đề
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
44 và in một thông báo lên màn hình của bạn. Bất cứ mã nào bạn thêm vào mệnh đề
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
44 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
0.

Sử dụng >>> return 42 File "", line 1 SyntaxError: 'return' outside function 0 trong các chức năng của máy phát điện

Hàm Python với câu lệnh

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
57 trong cơ thể của nó là một hàm máy phát. Khi bạn gọi một hàm trình tạo, nó sẽ trả về một trình lặp lại máy phát. Vì vậy, bạn có thể nói rằng một chức năng máy phát là một nhà máy máy phát.generator function. When you call a generator function, it returns a generator iterator. So, you can say that a generator function is a generator factory.

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

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 bên trong hàm trình tạo để chỉ ra rằng trình tạo đã hoàn thành. Tuyên bố
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 sẽ làm cho trình tạo tăng
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
60. Giá trị trả về sẽ được truyền dưới dạng đối số cho trình khởi tạo của
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
60 và sẽ được gán cho thuộc tính
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
62 của nó.

Ở đây, một trình tạo mang lại

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
10 và
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
42 theo yêu cầu và sau đó trả về
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
08:

>>>

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
8

Khi bạn gọi

>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
51, bạn sẽ được chuyển đổi thành số dấu phẩy động hoặc một đối tượng chuỗi. Trước khi làm điều đó, chức năng của bạn chạy mệnh đề
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
44 và in một thông báo lên màn hình của bạn. Bất cứ mã nào bạn thêm vào mệnh đề
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
44 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
0.

Sử dụng

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 trong các chức năng của máy phát điện

Hàm Python với câu lệnh >>> num = return_42() >>> num 42 >>> return_42() * 2 84 >>> return_42() + 5 47 57 trong cơ thể của nó là một hàm máy phát. Khi bạn gọi một hàm trình tạo, nó sẽ trả về một trình lặp lại máy phát. Vì vậy, bạn có thể nói rằng một chức năng máy phát là một nhà máy máy phát.

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

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 bên trong hàm trình tạo để chỉ ra rằng trình tạo đã hoàn thành. Tuyên bố
>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 sẽ làm cho trình tạo tăng
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
60. Giá trị trả về sẽ được truyền dưới dạng đối số cho trình khởi tạo của
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
60 và sẽ được gán cho thuộc tính
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
62 của nó.

Ở đây, một trình tạo mang lại

def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
10 và
def function_name(arg1, arg2,..., argN):
    # Function's code goes here...
    pass
42 theo yêu cầu và sau đó trả về
>>> num = return_42()
>>> num
42

>>> return_42() * 2
84

>>> return_42() + 5
47
08:

  • >>> num = return_42()
    >>> num
    42
    
    >>> return_42() * 2
    84
    
    >>> return_42() + 5
    47
    
    66 Trả về một đối tượng máy phát mang lại
    def function_name(arg1, arg2,..., argN):
        # Function's code goes here...
        pass
    
    10 và
    def function_name(arg1, arg2,..., argN):
        # Function's code goes here...
        pass
    
    42 theo yêu cầu. Để truy xuất từng số biểu mẫu đối tượng Trình tạo, bạn có thể sử dụng
    >>> num = return_42()
    >>> num
    42
    
    >>> return_42() * 2
    84
    
    >>> return_42() + 5
    47
    
    69, đây là chức năng tích hợp để truy xuất mục tiếp theo từ Trình tạo Python.Python
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    0 statement
    in your functions
  • Hai cuộc gọi đầu tiên đến
    >>> num = return_42()
    >>> num
    42
    
    >>> return_42() * 2
    84
    
    >>> return_42() + 5
    47
    
    69 Truy xuất lần lượt
    def function_name(arg1, arg2,..., argN):
        # Function's code goes here...
        pass
    
    10 và
    def function_name(arg1, arg2,..., argN):
        # Function's code goes here...
        pass
    
    42. Trong cuộc gọi thứ ba, máy phát điện đã kiệt sức và bạn nhận được
    >>> num = return_42()
    >>> num
    42
    
    >>> return_42() * 2
    84
    
    >>> return_42() + 5
    47
    
    60. Lưu ý rằng giá trị trả về của hàm máy phát (
    >>> num = return_42()
    >>> num
    42
    
    >>> return_42() * 2
    84
    
    >>> return_42() + 5
    47
    
    08) trở thành thuộc tính
    >>> num = return_42()
    >>> num
    42
    
    >>> return_42() * 2
    84
    
    >>> return_42() + 5
    47
    
    62 của đối tượng
    >>> num = return_42()
    >>> num
    42
    
    >>> return_42() * 2
    84
    
    >>> return_42() + 5
    47
    
    60.single or multiple values from your functions to the caller code
  • Sự kết luậnbest practices when using the
    >>> return 42
      File "", line 1
    SyntaxError: 'return' outside function
    
    0 statement

Câu lệnh Python

>>> return 42
  File "", line 1
SyntaxError: 'return' outside function
0 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. Tuyên bố này là một phần cơ bản của bất kỳ chức năng hoặc phương pháp 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 mã hóa các chức năng mạnh mẽ.

Trong hướng dẫn này, bạn đã học được cách: This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Using the Python return Statement Effectively

Return là gì {} trong Python?

Câu lệnh Python 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 phương thức để gửi kết quả của hàm trở lại cho người gọi.Một câu lệnh trả về bao gồm từ khóa trả về 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.a special statement that you can use inside a function or method to send the function's result back to the caller. A return statement consists of the return keyword followed by an optional return value. The return value of a Python function can be any Python object.

Có phải hành động trở lại như phá vỡ Python?

Break được sử dụng để kết thúc một vòng lặp sớm trong khi return là từ khóa được sử dụng để chuyển lại giá trị trả về cho người gọi của hàm.Nếu nó được sử dụng mà không có đối số, nó chỉ đơn giản là kết thúc chức năng và quay trở lại nơi mã được thực thi trước đó.. If it is used without an argument it simply ends the function and returns to where the code was executing previously.