What will be the output of the following Python code?
4 phương ánCó giải thích
def foo():
try:
return 1
finally:
return 2
k = foo()
print(k)Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "2". Trong Python, khối finally luôn chạy trước khi hàm thực sự rời đi, kể cả khi khối try đã gặp return. Lần theo: foo() vào try, gặp return 1 nên giá trị 1 được chuẩn bị làm kết quả, nhưng trước khi trả về, trình thông dịch chạy finally; ở đó return 2 thay thế giá trị đang chờ, nên foo() trả 2, k nhận 2 và print(k) in ra 2. "1" sai vì bỏ qua việc return trong finally ghi đè return trong try. "3" sai vì không có phép cộng nào, hai giá trị không gộp lại với nhau. "error, there is more than one return statement in a single try-finally block" sai vì Python cho phép nhiều câu return trong một hàm, đặt trong cả try lẫn finally; đây là cú pháp hợp lệ, chỉ là cách viết dễ gây nhầm vì nó nuốt mất giá trị trả về của try, và cả ngoại lệ nếu try ném ra.
Cùng phần 4
What is the result of sorted([-4, 1, -2, 3], key=abs, reverse=True) ?Có lời giảiCâu hỏiWhat will be the output of the following Python expression?
round(4.576)Có lời giảiCâu hỏiWhat is the primary role of the Page Directory in the x86 memory management process?Có lời giảiCâu hỏiCả 22 câu của chủ đề22 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây