Hướng dẫn what does a function with no returning value return in python? - Hàm không có giá trị trả về trả về trong python là gì?

Về hành vi thực tế, không có sự khác biệt. Tất cả họ trở lại

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
5 và đó là nó. Tuy nhiên, có một thời gian và địa điểm cho tất cả những điều này. Các hướng dẫn sau đây về cơ bản là cách sử dụng các phương pháp khác nhau (hoặc ít nhất là cách tôi được dạy chúng nên được sử dụng), nhưng chúng không phải là quy tắc tuyệt đối để bạn có thể trộn chúng nếu bạn cảm thấy cần thiết.

Sử dụng def find_prisoner_with_knife(prisoners): for prisoner in prisoners: if "knife" in prisoner.items: prisoner.move_to_inquisition() return # no need to check rest of the prisoners nor raise an alert raise_alert() 6

Điều này cho biết rằng hàm thực sự có nghĩa là trả về một giá trị cho việc sử dụng sau này và trong trường hợp này, nó trả về

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
5. Giá trị này
def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
5 sau đó có thể được sử dụng ở nơi khác.
def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
6 không bao giờ được sử dụng nếu không có giá trị trả về khả thi nào khác từ hàm.

Trong ví dụ sau, chúng tôi trở lại ____ 20

def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
1 nếu
def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
0 được đưa ra là con người. Nếu đó không phải là con người, chúng ta sẽ trở lại
def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
5 vì
def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
0 không có
def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
1 (giả sử đó không phải là động vật hay gì đó).

def get_mother(person):
    if is_human(person):
        return person.mother
    else:
        return None

Sử dụng def set_mother(person, mother): if is_human(person): person.mother = mother 6

Điều này được sử dụng vì lý do tương tự như

def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
7 trong các vòng lặp. Giá trị trả về không quan trọng và bạn chỉ muốn thoát toàn bộ hàm. Nó cực kỳ hữu ích ở một số nơi, mặc dù bạn không cần nó thường xuyên.

Chúng tôi đã có 15

def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
8 và chúng tôi biết một trong số họ có một con dao. Chúng tôi lặp qua từng
def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
9 từng người một để kiểm tra xem họ có dao không. Nếu chúng ta đánh người bằng dao, chúng ta có thể thoát khỏi chức năng vì chúng ta biết chỉ có một con dao và không có lý do gì khi kiểm tra phần còn lại của
def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
8. Nếu chúng ta không tìm thấy
def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
9 bằng một con dao, chúng ta sẽ đưa ra một cảnh báo. Điều này có thể được thực hiện theo nhiều cách khác nhau và sử dụng
def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
6 có lẽ thậm chí không phải là cách tốt nhất, nhưng đó chỉ là một ví dụ để chỉ ra cách sử dụng
def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
6 để thoát khỏi chức năng.

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()

Lưu ý: Bạn không bao giờ nên làm

def add(x, y):
    total = x + y
    return total
4, vì giá trị trả về không có nghĩa là bị bắt.

Không sử dụng def set_mother(person, mother): if is_human(person): person.mother = mother 6 ở tất cả

Điều này cũng sẽ trả về

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
5, nhưng giá trị đó không có nghĩa là được sử dụng hoặc bắt được. Nó đơn giản có nghĩa là chức năng kết thúc thành công. Về cơ bản, nó giống như
def set_mother(person, mother):
    if is_human(person):
        person.mother = mother
6 trong các chức năng
def add(x, y):
    total = x + y
    return total
8 trong các ngôn ngữ như C ++ hoặc Java.

Trong ví dụ sau, chúng tôi đặt tên của mẹ và sau đó chức năng thoát ra sau khi hoàn thành thành công.

def set_mother(person, mother):
    if is_human(person):
        person.mother = mother

Lưu ý: Bạn không bao giờ nên làm

def add(x, y):
    total = x + y
    return total
9, vì giá trị trả về không có nghĩa là bị bắt.

  • Câu lệnh Python Return được sử dụng trong một hàm để trả về một cái gì đó cho chương trình người gọi.function to return something to the caller program.
  • Chúng ta chỉ có thể sử dụng câu lệnh trả về bên trong một hàm.
  • Trong Python, mọi chức năng đều trả về một cái gì đó. Nếu không có câu lệnh hoàn trả, thì nó không trả về không.None.
  • Nếu câu lệnh trả về chứa một biểu thức, nó đã đánh giá trước và sau đó giá trị được trả về.
  • Câu lệnh trả về chấm dứt thực thi chức năng.
  • Một chức năng có thể có nhiều câu lệnh trả về. Khi bất kỳ trong số chúng được thực thi, chức năng chấm dứt.
  • Một hàm có thể trả về nhiều loại giá trị.
  • Hàm Python có thể trả về nhiều giá trị trong một câu lệnh trả về.

Hãy cùng xem một ví dụ đơn giản để thêm hai số và trả lại tổng số cho người gọi.

def add(x, y):
    total = x + y
    return total

Chúng ta có thể tối ưu hóa chức năng bằng cách có biểu thức trong câu lệnh trả về.

def add(x, y):
    return x + y


Mỗi chức năng trả về một cái gì đó

Hãy để xem những gì được trả lại khi một hàm không có câu lệnh trả lại.

>>> def foo():
...     pass
... 
>>> 
>>> print(foo())
None
>>>

Hướng dẫn what does a function with no returning value return in python? - Hàm không có giá trị trả về trả về trong python là gì?
Python không trả lại


Điều gì xảy ra khi tuyên bố trả lại không có gì?

Khi câu lệnh trả về không có giá trị, hàm không trả về không.None.

>>> def return_none():
...     return
... 
>>> print(return_none())
None
>>> 


Các chức năng Python có thể có nhiều câu lệnh hoàn trả

def type_of_int(i):
    if i % 2 == 0:
        return 'even'
    else:
        return 'odd'


Hàm Python có thể trả về nhiều loại giá trị

Không giống như các ngôn ngữ lập trình khác, các hàm Python không bị hạn chế để trả về một loại giá trị duy nhất. Nếu bạn nhìn vào định nghĩa chức năng, nó không có bất kỳ thông tin nào về những gì nó có thể trả lại.

Hãy cùng xem xét một ví dụ trong đó hàm sẽ trả về nhiều loại giá trị.

def get_demo_data(object_type):
    if 'str' == object_type:
        return 'test'
    elif 'tuple' == object_type:
        return (1, 2, 3)
    elif 'list' == object_type:
        return [1, 2, 3]
    elif 'dict' == object_type:
        return {"1": 1, "2": 2, "3": 3}
    else:
        return None


Trả về nhiều giá trị trong một câu lệnh trả về

Chúng ta có thể trả về nhiều giá trị từ một câu lệnh trả về duy nhất. Các giá trị này được phân tách bằng dấu phẩy và được trả lại dưới dạng một tuple cho chương trình người gọi.

def return_multiple_values():
    return 1, 2, 3


print(return_multiple_values())
print(type(return_multiple_values()))

Output:

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
0

Hướng dẫn what does a function with no returning value return in python? - Hàm không có giá trị trả về trả về trong python là gì?
Python trả về nhiều giá trị


Câu lệnh trả về Python với khối cuối cùng

Khi câu lệnh trả về được thực thi bên trong khối Except Try-Except, mã khối cuối cùng được thực thi trước khi trả lại giá trị cho người gọi.

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
1

Output:

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
2

Nếu khối cuối cùng có câu lệnh trả về, thì câu lệnh trả về trước đó sẽ bị bỏ qua và giá trị từ khối cuối cùng được trả về.

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
3

Output::

def find_prisoner_with_knife(prisoners):
    for prisoner in prisoners:
        if "knife" in prisoner.items:
            prisoner.move_to_inquisition()
            return # no need to check rest of the prisoners nor raise an alert
    raise_alert()
4


References:

  • Tài liệu chính thức của Python

Trả lại mà không có giá trị có ý nghĩa gì trong Python?

Một câu lệnh trả về được sử dụng để kết thúc việc thực hiện cuộc gọi chức năng và trả về kết quả (giá trị của biểu thức theo từ khóa trả về) cho người gọi.Các tuyên bố sau các tuyên bố trả lại không được thực thi.Nếu câu lệnh trả về không có bất kỳ biểu thức nào, thì giá trị đặc biệt không được trả về.If the return statement is without any expression, then the special value None is returned.

Một chức năng không trả lại trở lại là gì?

Nếu không có câu lệnh trả về xuất hiện trong một định nghĩa hàm, điều khiển sẽ tự động quay lại hàm gọi sau khi câu lệnh cuối cùng của hàm được gọi được thực thi.Trong trường hợp này, giá trị trả về của hàm được gọi là không xác định.control automatically returns to the calling function after the last statement of the called function is executed. In this case, the return value of the called function is undefined.

Điều gì xảy ra khi chúng ta không nhận được giá trị trả về từ một hàm?

Nói chung: Khi một hàm trả về giá trị không khoảng trống và giá trị không được lưu trữ ở bất cứ đâu, giá trị sẽ bị phá hủy.the value is destroyed.