Khi bạn nhập exit
trong dòng lệnh, nó sẽ tìm biến có tên đó và gọi __repr__
(hoặc __str__
) trên đó. Thông thường, bạn sẽ nhận được một kết quả như:
<function exit at 0x00B97FB0>
Nhưng họ đã quyết định để xác định lại chức năng cho đối tượng exit
để hiển thị một thông điệp hữu ích để thay thế. Cho dù đó có phải là hành vi ngu ngốc hay không, là một câu hỏi chủ quan, nhưng có thể một lý do tại sao nó không "chỉ thoát" là:
Giả sử bạn đang xem một số mã trong trình gỡ lỗi, ví dụ một trong các đối tượng tham chiếu hàm exit
. Khi trình gỡ lỗi cố gắng gọi __repr__
trên đối tượng đó để hiển thị chức năng đó cho bạn, chương trình đột nhiên dừng lại! Điều đó sẽ thực sự bất ngờ, và các biện pháp để chống lại điều đó có thể làm phức tạp thêm (ví dụ, ngay cả khi bạn giới hạn hành vi đó đối với dòng lệnh, nếu bạn cố gắng in một số đối tượng có exit
làm thuộc tính?)
Nó có thể có để làm với cách các chức năng thường được gọi với '()' ở cuối ... nếu không, nó có thể (có thể) là một biến ... hoặc một số loại đối tượng ... – summea
đúng nhưng thông dịch viên biết rằng tôi đang cố thoát ra và đó là lý do tại sao in thông báo đó. nếu không nó sẽ in một thông báo lỗi. Nếu nó biết tôi đang cố gắng thoát ra, nó chỉ có thể thoát ra. – Ank