Hỏi về return trong python



  • Hi mọi người, mình đang tìm hiểu python (đang đọc quyển Python 3 Object-oriented Programming), ở trang 57 (ebook) mình gặp đoạn code sau:

    def modify_memo(self, note_id, memo):
    '''Find the note with the given id and change its
    memo to the given value.'''
    note = self._find_note(note_id)
    if note:
    note.memo = memo
    return True
    return False

    Cho mình hỏi nếu vậy thì hàm này lúc nào cũng trả về giá trị False phải không? cho dù có chạy câu lệnh if ở trên. Cám ơn mọi người.



  • Bạn nên format lại code cho dễ nhìn.
    Mình đọc không hiểu return True là ở trong if hay ngoài if



  • Sorry. post xong mình không xem lại nên không biết mã chưa được format. return True ở trong if.

     def modify_memo(self, note_id, memo):
            '''Find the note with the given id and change its
            memo to the given value.'''
            note = self._find_note(note_id)
            if note:
                note.memo = memo
                return True
            return False
    


  • Nếu thoả điều kiện của if thì sẽ return True
    ngược lại thì return False
    Trừ khi note.memo = memo xảy ra exception thì không return gì thôi



  • Cám ơn bạn nhiều. Nhờ câu trả lời của bạn mà mình mới đọc kỹ lại nghĩa của từ return, tìm trên stackoverflow thì đc giải thích vầy:

    It returns the flow of control to the calling function. It also returns output/results to the calling function.

    Consider the function below:

    def am_i_wrong(answer):
        if answer == 'yes':
            return True
        else:
            return False
    

    You have multiple returns. So return doesn't simply end the function definition. It instead is the point at which the function returns the result to the caller.

    If answer is equal to 'yes' then anything after the if statement (after if and else) is never run because the function has already returned.



  • Bạn mới bắt đầu học python à?



  • ờ, mình mới bắt đầu tìm hiểu python dạo gần đây :)


Hãy đăng nhập để trả lời
 

Có vẻ như bạn đã mất kết nối tới Cộng đồng Python Việt Nam, vui lòng đợi một lúc để chúng tôi thử kết nối lại.