Hướng dẫn what is abstract class in python? - lớp trừu tượng trong python là gì?
Một lớp trừu tượng có thể được coi là một kế hoạch chi tiết cho các lớp khác. Nó cho phép bạn tạo một tập hợp các phương thức phải được tạo trong bất kỳ lớp con nào được xây dựng từ lớp trừu tượng. Một lớp chứa một hoặc nhiều phương thức trừu tượng được gọi là một lớp trừu tượng. Một phương pháp trừu tượng là một phương pháp có khai báo nhưng không có việc thực hiện. Trong khi chúng tôi đang thiết kế các đơn vị chức năng lớn, chúng tôi sử dụng một lớp trừu tượng. Khi chúng tôi muốn cung cấp một giao diện chung cho các triển khai khác nhau của một thành phần, chúng tôi sử dụng một lớp trừu tượng. (API) cho một tập hợp các lớp con. Khả năng này đặc biệt hữu ích trong các tình huống mà bên thứ ba sẽ cung cấp các triển khai, chẳng hạn như với các plugin, nhưng cũng có thể giúp bạn khi làm việc trong một nhóm lớn hoặc với một cơ sở mã lớn trong đó giữ cho tất cả các lớp trong tâm trí của bạn là khó khăn hoặc không thể. Python đi kèm với một mô -đun cung cấp cơ sở để xác định các lớp cơ sở trừu tượng (ABC) và tên mô -đun đó là ABC. ABC hoạt động bằng cách trang trí các phương pháp của lớp cơ sở là trừu tượng và sau đó đăng ký các lớp bê tông dưới dạng triển khai cơ sở trừu tượng. Một phương pháp trở nên trừu tượng khi được trang trí bằng từ khóa @abstractmethod. Ví dụ - & nbsp; Show Mã 1: Python3
I can walk and run I can crawl I can bark I can roar0 I can walk and run I can crawl I can bark I can roar1 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar3 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True0 I can walk and run I can crawl I can bark I can roar0 True True2 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 Abstract Base Class subclass1 Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar0 True True2 I can walk and run I can crawl I can bark I can roar0 Abstract Base Class subclass4 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 Can't instantiate abstract class parent with abstract methods geeks child class3 Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 Traceback (most recent call last): File "/home/ffe4267d930f204512b7f501bb1bc489.py", line 19, in c=Animal() TypeError: Can't instantiate abstract class Animal with abstract methods move5 Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar0 True True2 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 from 7Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar0 True True2
I can walk and run I can crawl I can bark I can roar0 Abstract Base Class subclass4
I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8
I can walk and run I can crawl I can bark I can roar0 Can't instantiate abstract class parent with abstract methods geeks child class6
I have 3 sides I have 4 sides I have 5 sides I have 6 sides
Python3
I can walk and run I can crawl I can bark I can roar0 I can walk and run I can crawl I can bark I can roar1 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True0 I can walk and run I can crawl I can bark I can roar0 True True2 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 I can walk and run I can crawl I can bark I can roar08 Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar0 True True2 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 I can walk and run I can crawl I can bark I can roar20 Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar0 True True2 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 I can walk and run I can crawl I can bark I can roar32 Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar0 True True2 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 I can walk and run I can crawl I can bark I can roar44 Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar0 True True2 I can walk and run I can crawl I can bark I can roar49 I can walk and run I can crawl I can bark I can roar0 Abstract Base Class subclass4 I can walk and run I can crawl I can bark I can roar53 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar6 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar49 I can walk and run I can crawl I can bark I can roar0 Can't instantiate abstract class parent with abstract methods geeks child class6 I can walk and run I can crawl I can bark I can roar53 Output: I can walk and run I can crawl I can bark I can roar I can walk and run I can crawl I can bark I can roar0 Traceback (most recent call last): File "/home/ffe4267d930f204512b7f501bb1bc489.py", line 19, in c=Animal() TypeError: Can't instantiate abstract class Animal with abstract methods move8 Implementation Through Subclassing : By subclassing directly from the base, we can avoid the need to register the class explicitly. In this case, the Python class management is used to recognize PluginImplementation as implementing the abstract PluginBase. Python3
I can walk and run I can crawl I can bark I can roar9 True True0
I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 I can walk and run I can crawl I can bark I can roar83 Abstract Base Class subclass2 True True9 I can walk and run I can crawl I can bark I can roar86 I can walk and run I can crawl I can bark I can roar87 I can walk and run I can crawl I can bark I can roar88 True True9 I can walk and run I can crawl I can bark I can roar86 I can walk and run I can crawl I can bark I can roar91 I can walk and run I can crawl I can bark I can roar92 Output: True True
Đầu ra: & nbsp; & nbsp; Python3
I can walk and run I can crawl I can bark I can roar0 True True00 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 True True03 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 True True09 Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar0 True True12 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 True True03 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True19 True True20 I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 True True24 Abstract Base Class subclass2 I can walk and run I can crawl I can bark I can roar0 True True12 True True29 Output: Abstract Base Class subclass True True26 abc 0 True True28 Abstract Properties : Abstract classes include attributes in addition to methods, you can require the attributes in concrete classes by defining them with @abstractproperty. Python3Trong chương trình trên, chúng ta có thể gọi các phương thức trong các lớp trừu tượng bằng cách sử dụng Super (). & NBSP; & nbsp; & nbsp; thuộc tính trừu tượng: & nbsp; các lớp trừu tượng bao gồm các thuộc tính ngoài các phương thức, bạn có thể yêu cầu các thuộc tính trong các lớp cụ thể bằng cách xác định chúng với @Tóm tắtProperty. & NBSP; & NBSP;
I can walk and run I can crawl I can bark I can roar63
I can walk and run I can crawl I can bark I can roar2 True True39 True True40 I can walk and run I can crawl I can bark I can roar0 True True37 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar68 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 I can walk and run I can crawl I can bark I can roar9 True True47 True True48 I can walk and run I can crawl I can bark I can roar2 True True52 I can walk and run I can crawl I can bark I can roar0 True True37 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar5 I can walk and run I can crawl I can bark I can roar68 I can walk and run I can crawl I can bark I can roar7 I can walk and run I can crawl I can bark I can roar8 True True61 True True62 I can walk and run I can crawl I can bark I can roar2 True True26 abc 0True True66 I can walk and run I can crawl I can bark I can roar2 True True9 True True69 I can walk and run I can crawl I can bark I can roar9 True True47 True True48 I can walk and run I can crawl I can bark I can roar0 I can walk and run I can crawl I can bark I can roar74 I can walk and run I can crawl I can bark I can roar9 True True47 I can walk and run I can crawl I can bark I can roar83 True True70 True True71 Output: Can't instantiate abstract class parent with abstract methods geeks child class I can walk and run I can crawl I can bark I can roar2 True True9 True True74 Abstract Class Instantiation : Abstract classes are incomplete because they have methods that have nobody. If python allows creating an object for abstract classes then using that object if anyone calls the abstract method, but there is no actual implementation to invoke. So we use an abstract class as a template and according to the need, we extend it and build on it before we can use it. Due to the fact, an abstract class is not a concrete class, it cannot be instantiated. When we create an object for the abstract class it raises an error. Python3True True26 abc 0 True True77 True True9 True True79 I can walk and run I can crawl I can bark I can roar2 I can walk and run I can crawl I can bark I can roar3 Trong ví dụ trên, lớp cơ sở không thể được khởi tạo vì nó chỉ có phiên bản trừu tượng của phương thức getter thuộc tính. Nếu Python cho phép tạo một đối tượng cho các lớp trừu tượng thì sử dụng đối tượng đó nếu bất kỳ ai gọi phương thức trừu tượng, nhưng không có triển khai thực tế để gọi. Vì vậy, chúng tôi sử dụng một lớp trừu tượng làm mẫu và theo nhu cầu, chúng tôi mở rộng nó và xây dựng nó trước khi chúng tôi có thể sử dụng nó. Do thực tế, một lớp trừu tượng không phải là một lớp cụ thể, nó không thể được khởi tạo. Khi chúng ta tạo một đối tượng cho lớp trừu tượng, nó sẽ gây ra lỗi. & Nbsp; & nbsp; I can walk and run I can crawl I can bark I can roar9 True True0
True True83 Trong ví dụ trên, lớp cơ sở không thể được khởi tạo vì nó chỉ có phiên bản trừu tượng của phương thức getter thuộc tính. Nếu Python cho phép tạo một đối tượng cho các lớp trừu tượng thì sử dụng đối tượng đó nếu bất kỳ ai gọi phương thức trừu tượng, nhưng không có triển khai thực tế để gọi. Vì vậy, chúng tôi sử dụng một lớp trừu tượng làm mẫu và theo nhu cầu, chúng tôi mở rộng nó và xây dựng nó trước khi chúng tôi có thể sử dụng nó. Do thực tế, một lớp trừu tượng không phải là một lớp cụ thể, nó không thể được khởi tạo. Khi chúng ta tạo một đối tượng cho lớp trừu tượng, nó sẽ gây ra lỗi. & Nbsp; & nbsp; I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 I can walk and run I can crawl I can bark I can roar08 Abstract Base Class subclass2
True True83 Trong ví dụ trên, lớp cơ sở không thể được khởi tạo vì nó chỉ có phiên bản trừu tượng của phương thức getter thuộc tính. Nếu Python cho phép tạo một đối tượng cho các lớp trừu tượng thì sử dụng đối tượng đó nếu bất kỳ ai gọi phương thức trừu tượng, nhưng không có triển khai thực tế để gọi. Vì vậy, chúng tôi sử dụng một lớp trừu tượng làm mẫu và theo nhu cầu, chúng tôi mở rộng nó và xây dựng nó trước khi chúng tôi có thể sử dụng nó. Do thực tế, một lớp trừu tượng không phải là một lớp cụ thể, nó không thể được khởi tạo. Khi chúng ta tạo một đối tượng cho lớp trừu tượng, nó sẽ gây ra lỗi. & Nbsp; & nbsp; I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 I can walk and run I can crawl I can bark I can roar20 Abstract Base Class subclass2
True True83 Trong ví dụ trên, lớp cơ sở không thể được khởi tạo vì nó chỉ có phiên bản trừu tượng của phương thức getter thuộc tính. Nếu Python cho phép tạo một đối tượng cho các lớp trừu tượng thì sử dụng đối tượng đó nếu bất kỳ ai gọi phương thức trừu tượng, nhưng không có triển khai thực tế để gọi. Vì vậy, chúng tôi sử dụng một lớp trừu tượng làm mẫu và theo nhu cầu, chúng tôi mở rộng nó và xây dựng nó trước khi chúng tôi có thể sử dụng nó. Do thực tế, một lớp trừu tượng không phải là một lớp cụ thể, nó không thể được khởi tạo. Khi chúng ta tạo một đối tượng cho lớp trừu tượng, nó sẽ gây ra lỗi. & Nbsp; & nbsp; I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 I can walk and run I can crawl I can bark I can roar32 Abstract Base Class subclass2
True True83 Trong ví dụ trên, lớp cơ sở không thể được khởi tạo vì nó chỉ có phiên bản trừu tượng của phương thức getter thuộc tính. Nếu Python cho phép tạo một đối tượng cho các lớp trừu tượng thì sử dụng đối tượng đó nếu bất kỳ ai gọi phương thức trừu tượng, nhưng không có triển khai thực tế để gọi. Vì vậy, chúng tôi sử dụng một lớp trừu tượng làm mẫu và theo nhu cầu, chúng tôi mở rộng nó và xây dựng nó trước khi chúng tôi có thể sử dụng nó. Do thực tế, một lớp trừu tượng không phải là một lớp cụ thể, nó không thể được khởi tạo. Khi chúng ta tạo một đối tượng cho lớp trừu tượng, nó sẽ gây ra lỗi. & Nbsp; & nbsp; I can walk and run I can crawl I can bark I can roar9 True True9 Abstract Base Class subclass0 I can walk and run I can crawl I can bark I can roar44 Abstract Base Class subclass2 Abstract Base Class subclass43 abc 0Abstract Base Class subclass45 Output: Traceback (most recent call last): File "/home/ffe4267d930f204512b7f501bb1bc489.py", line 19, in c=Animal() TypeError: Can't instantiate abstract class Animal with abstract methods move Một lớp trừu tượng là gì?Một lớp trừu tượng là một lớp được tuyên bố là trừu tượng có thể hoặc không bao gồm các phương thức trừu tượng. Các lớp trừu tượng không thể được khởi tạo, nhưng chúng có thể được phân nhóm. Khi một lớp trừu tượng được phân lớp, lớp con thường cung cấp các triển khai cho tất cả các phương thức trừu tượng trong lớp cha của nó.a class that is declared abstract —it may or may not include abstract methods. Abstract classes cannot be instantiated, but they can be subclassed. When an abstract class is subclassed, the subclass usually provides implementations for all of the abstract methods in its parent class.
Ví dụ về lớp trừu tượng là gì?Các lớp trừu tượng là điều cần thiết để cung cấp một sự trừu tượng hóa cho mã để làm cho nó có thể tái sử dụng và có thể mở rộng.Ví dụ, một lớp phụ huynh xe với xe tải và xe máy kế thừa từ nó là một sự trừu tượng dễ dàng cho phép thêm nhiều phương tiện.a Vehicle parent class with Truck and Motorbike inheriting from it is an abstraction that easily allows more vehicles to be added.
Việc sử dụng lớp trừu tượng là gì?Một lớp trừu tượng được sử dụng nếu bạn muốn cung cấp một chức năng phổ biến, được triển khai trong số tất cả các triển khai của thành phần.Các lớp trừu tượng sẽ cho phép bạn thực hiện một phần lớp của mình, trong khi các giao diện sẽ không có việc triển khai cho bất kỳ thành viên nào.if you want to provide a common, implemented functionality among all the implementations of the component. Abstract classes will allow you to partially implement your class, whereas interfaces would have no implementation for any members whatsoever.
Sự trừu tượng trong Python là gì?Sự trừu tượng trong Python được định nghĩa là một quá trình xử lý sự phức tạp bằng cách che giấu thông tin không cần thiết từ người dùng.Đây là một trong những khái niệm cốt lõi của các ngôn ngữ lập trình hướng đối tượng (OOP).a process of handling complexity by hiding unnecessary information from the user. This is one of the core concepts of object-oriented programming (OOP) languages. |