ABC trong Python
Các lớp trừu tượng là gì? . Đến cuối bài đăng này, bạn sẽ hiểu rõ về ABC trong Python và cách thêm chúng vào chương trình của bạn Show
Hãy bắt đầu nào Mã của chúng tôi không có lớp trừu tượngTôi tin rằng cách tốt nhất để tìm hiểu là với một ví dụ, vì vậy hãy xem đoạn mã sau
Công việc của chúng tôi là cho tất cả các loài động vật ăn bằng tập lệnh Python. Một cách để làm điều đó sẽ là
Điều này sẽ làm việc. Nhưng hãy tưởng tượng sẽ mất bao nhiêu thời gian để làm điều này cho mỗi con vật trong một sở thú lớn, lặp đi lặp lại cùng một quy trình và mã hàng trăm lần. Điều đó cũng sẽ làm cho mã khó bảo trì hơn Hiện tại cấu trúc chương trình của chúng tôi trông giống như thế này Chúng tôi muốn tối ưu hóa quy trình, vì vậy chúng tôi có thể đưa ra giải pháp như thế này
Vấn đề là mỗi lớp có một tên phương thức khác nhau, khi cho sư tử ăn là 5, khi cho gấu trúc ăn là 6 và là 7 cho rắnMã này là một mớ hỗn độn vì các phương thức thực hiện cùng một việc nên được đặt tên giống nhau Nếu chúng ta chỉ có thể buộc các lớp của mình triển khai cùng tên phương thức Giới thiệu các lớp Trừu tượngHóa ra lớp Trừu tượng là thứ chúng ta cần. Về cơ bản, nó buộc các lớp con của nó thực hiện tất cả các phương thức trừu tượng của nó. Nó là một lớp đại diện cho các lớp con của nó trông như thế nào Một cấu trúc tốt hơn có thể trông như thế này (______18 là một lớp Trừu tượng) Bằng cách giới thiệu một lớp trừu tượng ( 8), mọi lớp kế thừa từ 8 phải triển khai các phương thức trừu tượng từ 8, trong trường hợp của chúng ta là phương thức 2Chúng ta hãy xem mã 1Khi định nghĩa một lớp trừu tượng, chúng ta cần kế thừa từ Lớp cơ sở trừu tượng - 3Để định nghĩa một phương thức trừu tượng trong lớp trừu tượng, chúng ta phải sử dụng một trình trang trí. 4. Mô-đun 5 tích hợp chứa cả haiNếu bạn kế thừa từ lớp Animal nhưng không triển khai các phương thức trừu tượng, bạn sẽ gặp lỗi 5Nếu chúng ta cố gắng khởi tạo lớp (e. g. 6 ) nó sẽ ném ra một 7 vì chúng ta không thể khởi tạo Panda mà không có phương thức trừu tượng 2Hãy ghi nhớ điều đó, chúng ta cần tạo ra những con vật của mình (lần này là chính xác) 9Và cuối cùng, đây là tất cả mã chúng ta cần để tạo và cho động vật ăn 0Viết các phương thức trừu tượng với các tham sốĐiều gì xảy ra khi một phương thức trừu tượng có tham số? . Việc triển khai của lớp con cũng có thể thêm các tham số bổ sung nếu cần 1 2Chạy đoạn mã trên sẽ in ra 3Chúng tôi cũng có thể sử dụng các đối số mặc định, bạn có thể đọc về những đối số đó tại đây Thuộc tính viết (trừu tượng)Chúng tôi cũng có thể muốn tạo các thuộc tính trừu tượng và buộc lớp con của chúng tôi triển khai các thuộc tính đó. Điều này có thể được thực hiện bằng cách sử dụng trình trang trí 9 cùng với 10Vì các loài động vật thường có chế độ ăn khác nhau nên chúng ta sẽ cần xác định một 11 trong các lớp động vật của mình. Vì tất cả các loài động vật đều thừa hưởng từ 8, nên chúng ta có thể định nghĩa 11 là một thuộc tính trừu tượng. Bên cạnh 11, chúng tôi sẽ tạo tài sản của 15 và nó là 16 sẽ kiểm tra xem chúng tôi có đang cố cho động vật ăn thứ gì đó không có trên đó không là 11Hãy xem mã của 8, 19 và 50 0Chúng ta có thể tạo hai đối tượng, đặt thức ăn mà chúng ta sẽ cho chúng ăn và sau đó gọi phương thức 2 1Điều đó sẽ in ra 2Nếu chúng ta cố gắng cho một con vật ăn thứ gì đó mà nó không ăn 3 16 sẽ tăng một 53 4Một từ trên lớp Meta trừu tượngBạn có thể đã bắt gặp siêu dữ liệu khi tìm hiểu về các lớp trừu tượng Một lớp định nghĩa cách một thể hiện của lớp hành xử (e. g. 8 mô tả cách 19 sẽ hành xử). Mặt khác, một siêu dữ liệu xác định cách một lớp hoạt động ( 56 mô tả cách mọi lớp 3 sẽ hoạt động). Một lớp là một thể hiện của một siêu dữ liệuMô-đun 5 đi kèm với siêu dữ liệu 56. trở lại những ngày chúng tôi phải sử dụng nó để xác định siêu dữ liệu với 90. Ngày nay, chỉ kế thừa từ 3 cũng làm được điều tương tự—vì vậy bạn hoàn toàn không phải lo lắng về siêu dữ liệu. Bản tóm tắtTrong bài đăng trên blog này, chúng tôi đã mô tả những điều cơ bản về các lớp trừu tượng của Python. Chúng đặc biệt hữu ích khi làm việc theo nhóm với các nhà phát triển khác và các phần của dự án được phát triển song song Dưới đây là một số điểm chính
Tôi hy vọng bạn đã học được một cái gì đó mới ngày hôm nay. Nếu bạn đang muốn nâng cấp kỹ năng Python của mình hơn nữa, hãy xem Khóa học Python hoàn chỉnh của chúng tôi ABC có được xây dựng bằng Python không?Hàm abs() tích hợp trong Python trả về giá trị tuyệt đối của một số. Nhưng giá trị tuyệt đối của một số ở nơi đầu tiên là gì? .
Lớp trừu tượng trong Python là gì?Các lớp trừu tượng là các lớp chứa một hoặc nhiều phương thức trừu tượng. Một phương thức trừu tượng là một phương thức được khai báo, nhưng không chứa phần thực thi. Các lớp trừu tượng không thể được khởi tạo và yêu cầu các lớp con cung cấp các triển khai cho các phương thức trừu tượng
Lớp cơ sở trừu tượng ABC là gì?Các lớp cơ sở trừu tượng (ABC)
. ABC là kế hoạch chi tiết, không thể được khởi tạo và yêu cầu các lớp con cung cấp các triển khai cho các phương thức trừu tượng. Trong Python, chúng tôi sử dụng mô-đun ABC. classes that contain abstract methods, which are methods declared but without implementation. ABCs are blueprint, cannot be instantiated, and require subclasses to provide implementations for the abstract methods. In Python, we use the module ABC .
Bộ sưu tập ABC là gì?Các bộ sưu tập. mô-đun abc chứa các lớp cơ sở trừu tượng xác định API cho cấu trúc dữ liệu vùng chứa được tích hợp trong Python và được cung cấp bởi mô-đun bộ sưu tập . |