Đáp án đúng: C
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.
Câu hỏi liên quan
- Đáp án 1: `class Foo: Pass` chỉ định nghĩa một lớp `Foo` rỗng, không có kế thừa.
- Đáp án 2: `class Foo(object): pass` và `class Hoo(object) pass` định nghĩa hai lớp độc lập, không có quan hệ kế thừa.
- Đáp án 3: `class Foo: pass` và `class Hoo(Foo): pass` định nghĩa lớp `Hoo` kế thừa từ lớp `Foo`. Đây chính là tính năng kế thừa.
- Đáp án 4: Vì đáp án 3 đúng, nên đáp án này sai.
Vậy, đáp án đúng là đáp án 3.
* Kế thừa đa cấp (Multilevel Inheritance): Một lớp kế thừa từ một lớp khác, và lớp này lại kế thừa từ một lớp khác nữa, tạo thành một chuỗi kế thừa.
* Đa kế thừa (Multiple Inheritance): Một lớp kế thừa trực tiếp từ nhiều lớp khác nhau.
* Kế thừa phân cấp (Hierarchical Inheritance): Nhiều lớp khác nhau kế thừa từ một lớp cha duy nhất.
* Kế thừa (Inheritance): Khái niệm chung, một lớp (lớp con) được tạo ra dựa trên một lớp đã có (lớp cha), thừa hưởng các thuộc tính và phương thức của lớp cha.
Theo định nghĩa, khi một lớp thừa hưởng thuộc tính từ hai lớp khác nhau, đó chính là đa kế thừa (Multiple Inheritance).
Đoạn chương trình Python trên định nghĩa một lớp MyClass với hai thuộc tính: a (public) và __b (private). Thuộc tính __b được coi là private do có tiền tố là hai dấu gạch dưới, điều này ngụ ý rằng nó không nên được truy cập trực tiếp từ bên ngoài lớp. Tuy nhiên, Python không thực sự ngăn chặn việc truy cập này, mà chỉ là một quy ước đặt tên. Vì vậy, việc truy cập instance.__b vẫn hợp lệ.
Trong hàm main, một đối tượng instance của lớp MyClass được tạo ra. Sau đó, giá trị của thuộc tính __b được thay đổi thành 45 bằng cách truy cập trực tiếp thông qua instance.__b = 45. Cuối cùng, giá trị của instance.__b (đã được gán là 45) được in ra màn hình.
Vì vậy, chương trình chạy bình thường và in ra kết quả là 45.
Trong Python, một thuộc tính được coi là private khi nó bắt đầu bằng hai dấu gạch dưới __ (ví dụ: __y). Python thực hiện name mangling cho các thuộc tính này để tránh xung đột tên trong các lớp con. Điều này có nghĩa là bạn không thể truy cập trực tiếp thuộc tính private từ bên ngoài lớp bằng tên gốc của nó.
Tuy nhiên, thuộc tính chỉ có một dấu gạch dưới (ví dụ: _x) được coi là protected theo quy ước, không có cơ chế bảo vệ nghiêm ngặt như thuộc tính private. Mặc dù nó được khuyến nghị không nên truy cập trực tiếp từ bên ngoài lớp, nhưng Python không ngăn cản điều này.
Trong đoạn mã đã cho:
_xlà protected và có thể truy cập từ bên ngoài lớp (mặc dù không được khuyến nghị).__ylà private và không thể truy cập trực tiếp từ bên ngoài lớp bằng tên__y.
Do đó, khi bạn cố gắng truy cập obj.__y, Python sẽ báo lỗi AttributeError vì thuộc tính __y không thể truy cập trực tiếp từ bên ngoài lớp. Vì vậy, chương trình sẽ báo lỗi do truy cập thuộc tính private __y.

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

CEO.22: Bộ Tài Liệu Quy Trình Kiểm Toán, Kiểm Soát Nội Bộ Doanh Nghiệp
ĐĂNG KÝ GÓI THI VIP
- Truy cập hơn 100K đề thi thử và chính thức các năm
- 2M câu hỏi theo các mức độ: Nhận biết – Thông hiểu – Vận dụng
- Học nhanh với 10K Flashcard Tiếng Anh theo bộ sách và chủ đề
- Đầy đủ: Mầm non – Phổ thông (K12) – Đại học – Người đi làm
- Tải toàn bộ tài liệu trên TaiLieu.VN
- Loại bỏ quảng cáo để tăng khả năng tập trung ôn luyện
- Tặng 15 ngày khi đăng ký gói 3 tháng, 30 ngày với gói 6 tháng và 60 ngày với gói 12 tháng.