Khẳng định nào là đúng về chương trình dưới đây?
class A:
def __init__(self):
self.a = 1
self.__b = 1
def getY(self):
return self.__b
obj = A()
obj.a = 45
print(obj.a)
class A:
def __init__(self):
self.a = 1
self.__b = 1
def getY(self):
return self.__b
obj = A()
obj.a = 45
print(obj.a)
A.
Chương trình có lỗi xảy ra vì ' __b ' là thuộc tính private, không thể truy cập được từ bên ngoài lớp.
B.
Chương trình chạy bình thường và kết quả được in ra là 1.
C.
Chương trình có lỗi xảy ra vì ' a ' là thuộc tính private, không thể truy cập được từ bên ngoài lớp.
D.
Chương trình chạy bình thường và kết quả được in ra là 45.
Trả lời:
Đáp án đúng: D
Chương trình Python này định nghĩa một lớp `A` với một thuộc tính công khai `a` và một thuộc tính riêng tư `__b`. Trong phương thức `__init__`, `a` và `__b` được khởi tạo với giá trị 1. Phương thức `getY` trả về giá trị của `__b`.
Sau khi tạo một đối tượng `obj` từ lớp `A`, giá trị của `obj.a` được thay đổi thành 45. Cuối cùng, chương trình in giá trị của `obj.a`.
Thuộc tính `__b` là một thuộc tính private, nhưng trong Python, việc truy cập trực tiếp từ bên ngoài lớp vẫn có thể thực hiện được (mặc dù không được khuyến khích và thường được coi là vi phạm tính đóng gói). Tuy nhiên, việc thay đổi `obj.a` là hoàn toàn hợp lệ.
Vì vậy, chương trình sẽ chạy bình thường và in ra giá trị mới của `obj.a`, là 45.
Tổng hợp 200 câu hỏi trắc nghiệm lập trình Python có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
