Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về các lớp Trừu tượng trong Python và cách sử dụng nó để tạo bản thiết kế cho các lớp khác Show
Giới thiệu về các lớp trừu tượng PythonTrong lập trình hướng đối tượng, lớp trừu tượng là lớp không thể khởi tạo. Tuy nhiên, bạn có thể tạo các lớp kế thừa từ một lớp trừu tượng Thông thường, bạn sử dụng một lớp trừu tượng để tạo bản thiết kế cho các lớp khác Tương tự, một phương thức trừu tượng là một phương thức không có triển khai. Một lớp trừu tượng có thể có hoặc không bao gồm các phương thức trừu tượng Python không hỗ trợ trực tiếp các lớp trừu tượng. Nhưng nó cung cấp một mô-đun cho phép bạn định nghĩa các lớp trừu tượng Để định nghĩa một lớp trừu tượng, bạn sử dụng mô-đun 4 (lớp cơ sở trừu tượng) Mô-đun 4 cung cấp cho bạn cơ sở hạ tầng để xác định các lớp cơ sở trừu tượng Ví dụ
Để xác định một phương thức trừu tượng, bạn sử dụng trình trang trí 0
Ví dụ lớp trừu tượng PythonGiả sử rằng bạn cần phát triển một chương trình trả lương cho một công ty Công ty có hai nhóm nhân viên. nhân viên toàn thời gian và nhân viên theo giờ. Các nhân viên toàn thời gian nhận được một mức lương cố định trong khi các nhân viên theo giờ được trả lương theo giờ cho các dịch vụ của họ Chương trình tính lương cần in ra bảng lương bao gồm tên nhân viên và mức lương hàng tháng của họ Để lập mô hình chương trình tính lương theo cách hướng đối tượng, bạn có thể sử dụng các lớp sau. 1, 2, 3 và 4 Để cấu trúc chương trình, chúng tôi sẽ sử dụng các mô-đun, trong đó mỗi lớp được đặt trong một mô-đun (hoặc tệp) riêng biệt Lớp nhân viênLớp 1 đại diện cho nhân viên, toàn thời gian hoặc theo giờ. Lớp 1 phải là lớp trừu tượng vì chỉ có nhân viên toàn thời gian và nhân viên theo giờ, không tồn tại nhân viên chung Lớp 1 phải có một thuộc tính trả về tên đầy đủ của một nhân viên. Ngoài ra, nên có một phương pháp tính lương. Phương pháp tính lương phải là một phương pháp trừu tượng Sau đây định nghĩa lớp trừu tượng 1 1 Lớp nhân viên toàn thời gianLớp 2 kế thừa từ lớp 1. Nó sẽ cung cấp triển khai cho phương thức 11 Vì nhân viên toàn thời gian nhận được mức lương cố định, bạn có thể khởi tạo mức lương trong hàm tạo của lớp Sau đây minh họa lớp 2 6 Lớp HourlyEmployee3 cũng kế thừa từ lớp 1. Tuy nhiên, nhân viên hàng giờ được trả theo giờ làm việc và tỷ lệ của họ. Do đó, bạn có thể khởi tạo thông tin này trong hàm tạo của lớp Để tính lương cho nhân viên theo giờ, bạn nhân số giờ làm việc và tỷ lệ Sau đây cho thấy lớp 3 0 Lớp tiền lươngLớp 4 sẽ có phương thức thêm một nhân viên vào danh sách nhân viên và in ra bảng lương Vì nhân viên toàn thời gian và nhân viên làm việc theo giờ có cùng giao diện (thuộc tính ______117 và phương pháp ____111). Do đó, lớp Bảng lương không cần phân biệt Sau đây cho thấy lớp 4 5 chương trình chính60 sau đây sử dụng các lớp 2, 3 và 4 để in bảng lương của năm nhân viên 0 đầu ra 1 Khi nào nên sử dụng các lớp trừu tượngTrong thực tế, bạn sử dụng các lớp trừu tượng để chia sẻ mã giữa một số lớp liên quan chặt chẽ. Trong chương trình bảng lương, tất cả các lớp con của lớp 1 đều có chung thuộc tính 65 Thuộc tính có thể là Python trừu tượng không?Thuộc tính trừu tượng
. Mô-đun abc có trình trang trí @abstractproperty để sử dụng các thuộc tính trừu tượng . Cũng giống như các phương thức trừu tượng, chúng ta cần định nghĩa các thuộc tính trừu tượng trong các lớp triển khai. Nếu không, Python sẽ báo lỗi.
Các lớp trừu tượng có thể có các thuộc tính không?Một lớp trừu tượng không chỉ chứa các phương thức và bộ đánh giá trừu tượng mà còn chứa các phương thức, thuộc tính và bộ chỉ mục không trừu tượng .
Các lớp trừu tượng cũng có thể chứa các thuộc tính trừu tượng không?Một lớp trừu tượng có thể chứa các thành viên trừu tượng bao gồm các phương thức và thuộc tính trừu tượng . Các phương thức và thuộc tính trừu tượng không chứa triển khai. Các lớp con của một lớp trừu tượng phải thực hiện các phương thức và thuộc tính trừu tượng.
Điều gì không được phép trong lớp trừu tượng?Các phương thức trừu tượng không thể được khai báo là riêng tư . Các phương thức trừu tượng không thể được khai báo tĩnh. Một từ khóa trừu tượng không thể được sử dụng với các biến hoặc hàm tạo. Một lớp trừu tượng không thể có một thể hiện. |