Hướng dẫn what is parent class python? - python lớp cha là gì?
Giới thiệuLập trình hướng đối tượng tạo ra các mẫu mã có thể tái sử dụng để hạn chế dự phòng trong các dự án phát triển. Một cách mà lập trình hướng đối tượng đạt được mã có thể tái chế là thông qua kế thừa, khi một lớp con có thể tận dụng mã từ một lớp cơ sở khác. Show
Hướng dẫn này sẽ trải qua một số khía cạnh chính của thừa kế trong Python, bao gồm cách các lớp cha và lớp con hoạt động, cách ghi đè các phương thức và thuộc tính, cách sử dụng hàm 0 và cách sử dụng nhiều kế thừa.Điều kiện tiên quyếtBạn nên cài đặt Python 3 và môi trường lập trình được thiết lập trên máy tính hoặc máy chủ của bạn. Nếu bạn không có môi trường lập trình được thiết lập, bạn có thể tham khảo hướng dẫn cài đặt và thiết lập cho môi trường lập trình cục bộ hoặc cho môi trường lập trình trên máy chủ của bạn phù hợp với hệ điều hành của bạn (Ubuntu, Centos, Debian, v.v.) Thừa kế là gì?Kế thừa là khi một lớp sử dụng mã được xây dựng trong một lớp khác. Nếu chúng ta nghĩ về sự kế thừa về mặt sinh học, chúng ta có thể nghĩ về một đứa trẻ thừa hưởng những đặc điểm nhất định từ cha mẹ của chúng. Đó là, một đứa trẻ có thể thừa hưởng chiều cao hoặc màu mắt của cha mẹ. Trẻ em cũng có thể chia sẻ cùng họ với cha mẹ của chúng. is when a class uses code constructed within another class. If we think of inheritance in terms of biology, we can think of a child inheriting certain traits from their parent. That is, a child can inherit a parent’s height or eye color. Children also may share the same last name with their parents. Các lớp được gọi là các lớp con hoặc các lớp con kế thừa các phương thức và biến từ các lớp cha hoặc các lớp cơ sở.child classes or subclasses inherit methods and variables from parent classes or base classes. Chúng ta có thể nghĩ về một lớp cha mẹ gọi là 1 có các biến lớp cho 2, 3 và 4 rằng lớp con 5 sẽ kế thừa từ 1.Do lớp con 5 được kế thừa từ lớp cơ sở 1, lớp 5 có thể sử dụng lại mã của 1, cho phép lập trình viên sử dụng ít dòng mã hơn và giảm dự phòng.Lớp phụ huynhCác lớp cha mẹ hoặc cơ sở tạo ra một mẫu trong đó con hoặc các lớp con có thể dựa trên. Các lớp mẹ cho phép chúng tôi tạo các lớp con thông qua kế thừa mà không phải viết lại mã tương tự mỗi lần. Bất kỳ lớp nào cũng có thể được thực hiện thành một lớp cha mẹ, vì vậy chúng là mỗi lớp đầy đủ chức năng theo cách riêng của họ, thay vì chỉ các mẫu. Hãy nói rằng chúng tôi có một lớp phụ huynh 1 nói chung có các lớp con 2 và 3. Nhiều phương pháp giữa tài khoản cá nhân và doanh nghiệp sẽ tương tự nhau, chẳng hạn như các phương thức rút và gửi tiền, vì vậy chúng có thể thuộc loại phụ huynh của 1. Lớp con 3 sẽ có các phương pháp cụ thể cho nó, bao gồm cả cách thu thập hồ sơ và biểu mẫu kinh doanh, cũng như biến 6.Tương tự, một lớp 7 có thể có các phương thức 8 và 9 và phân lớp 0 có thể bao gồm các phương thức 1 và ____42 cụ thể của riêng nó.Hãy cùng tạo ra một lớp phụ huynh 3 mà sau này chúng ta sẽ sử dụng để xây dựng các loại cá làm các lớp con của nó. Mỗi con cá này sẽ có tên và tên cuối cùng ngoài các đặc điểm.Thông tin: Để làm theo cùng với mã ví dụ trong hướng dẫn này, hãy mở vỏ tương tác Python trên hệ thống cục bộ của bạn bằng cách chạy lệnh 4 command. Then you can copy, paste, or edit the examples by adding them after the 5 prompt.Chúng tôi sẽ tạo một tệp mới có tên 6 và bắt đầu với phương thức trình xây dựng 7, mà chúng tôi sẽ cư trú với các biến lớp 8 và 2 cho mỗi đối tượng hoặc lớp con 3.fish.py
Chúng tôi đã khởi tạo biến 2 của chúng tôi với chuỗi 2 vì chúng tôi biết rằng hầu hết các loài cá sẽ có tên này là tên cuối cùng của chúng.Hãy để thêm một số phương pháp khác: Cá.py
Chúng tôi đã thêm các phương thức 3 và 4 vào lớp 3, để mọi lớp con cũng có thể sử dụng các phương pháp này.Vì hầu hết các loài cá chúng ta sẽ tạo ra được coi là cá xương (vì trong chúng có một bộ xương được làm từ xương) thay vì cá sụn (như trong chúng có một bộ xương được làm từ sụn), chúng ta có thể thêm một vài Nhiều thuộc tính hơn cho phương thức 7:fish.py
Xây dựng một lớp cha theo phương pháp tương tự như xây dựng bất kỳ lớp nào khác, ngoại trừ chúng tôi đang suy nghĩ về những phương pháp mà các lớp con sẽ có thể sử dụng một khi chúng tôi tạo ra chúng. Lớp trẻ emTrẻ em hoặc các lớp con là các lớp sẽ kế thừa từ lớp cha. Điều đó có nghĩa là mỗi lớp trẻ sẽ có thể sử dụng các phương thức và biến của lớp cha. Ví dụ: một lớp con 7 được sắp xếp lớp 3 sẽ có thể sử dụng phương pháp 3 được khai báo trong 3 mà không cần phải khai báo.Chúng ta có thể nghĩ về từng lớp trẻ là một lớp của lớp cha. Đó là, nếu chúng ta có một lớp con được gọi là 1 và một lớp cha mẹ gọi là 2, chúng ta có thể nói rằng 1 là 2, giống như 7 là 3.is a 2, just as a 7 is a 3.Dòng đầu tiên của một lớp trẻ em trông hơi khác so với các lớp không phải con vì bạn phải chuyển lớp cha vào lớp con dưới dạng tham số:
Lớp 7 là một đứa trẻ của lớp 3. Chúng tôi biết điều này vì sự bao gồm của từ 3 trong ngoặc đơn.Với các lớp con, chúng ta có thể chọn thêm nhiều phương thức, ghi đè các phương thức cha mẹ hiện có hoặc chấp nhận các phương thức cha mẹ mặc định với từ khóa 0 mà chúng tôi sẽ làm trong trường hợp này:fish.py
Bây giờ chúng ta có thể tạo một đối tượng 7 mà không phải xác định bất kỳ phương thức bổ sung nào.fish.py
Chúng tôi đã tạo ra một đối tượng 7 3 sử dụng từng phương pháp của lớp 3 mặc dù chúng tôi không xác định các phương pháp đó trong lớp trẻ 7. Chúng tôi chỉ cần chuyển giá trị của 6 cho biến 8 vì tất cả các biến khác đã được khởi tạo.Khi chúng tôi chạy chương trình, chúng tôi sẽ nhận được đầu ra sau:
Tiếp theo, hãy để Lôi tạo một lớp trẻ khác bao gồm phương pháp riêng của nó. Chúng tôi sẽ gọi lớp này 8 và phương pháp đặc biệt của nó sẽ cho phép nó sống với hải quỳ biển:fish.py
Tiếp theo, hãy để Lôi tạo một đối tượng 8 để xem cách thức hoạt động của nó:fish.py
Khi chúng tôi chạy chương trình, chúng tôi sẽ nhận được đầu ra sau:
Tiếp theo, hãy để Lôi tạo một lớp trẻ khác bao gồm phương pháp riêng của nó. Chúng tôi sẽ gọi lớp này 8 và phương pháp đặc biệt của nó sẽ cho phép nó sống với hải quỳ biển:Tiếp theo, hãy để Lôi tạo một đối tượng 8 để xem cách thức hoạt động của nó: 0Đầu ra cho thấy đối tượng 8 1 có thể sử dụng các phương thức 3 7 và 3 cũng như phương pháp lớp con của nó là 5.Nếu chúng ta cố gắng sử dụng phương thức 5 trong đối tượng 7, chúng ta sẽ nhận được lỗi:Điều này là do phương pháp ... casey = Clownfish("Casey") print(casey.first_name + " " + casey.last_name) casey.swim() casey.live_with_anemone() 5 chỉ thuộc về lớp con ... class Clownfish(Fish): def live_with_anemone(self): print("The clownfish is coexisting with sea anemone.") 8 chứ không phải lớp phụ huynh ... class Trout(Fish): pass 3.Các lớp con kế thừa các phương pháp của lớp cha mà nó thuộc về, vì vậy mỗi lớp con có thể sử dụng các phương pháp đó trong các chương trình.override them. Ghi đè các phương thức cha mẹ Cho đến nay, chúng tôi đã xem xét lớp con 7 đã sử dụng từ khóa 0 để kế thừa tất cả các hành vi của lớp phụ huynh 3 và một lớp con khác 8 kế thừa tất cả các hành vi của lớp cha và cũng tạo ra phương pháp duy nhất của riêng mình đó là cụ thể cho lớp trẻ. Tuy nhiên, đôi khi, chúng tôi sẽ muốn sử dụng một số hành vi của lớp cha nhưng không phải tất cả chúng. Khi chúng tôi thay đổi các phương thức lớp cha, chúng tôi ghi đè chúng.Khi xây dựng các lớp cha mẹ và con cái, điều quan trọng là phải ghi nhớ thiết kế chương trình để việc ghi đè không tạo ra mã không cần thiết hoặc dự phòng. Chúng tôi sẽ tạo ra một lớp con 5 của lớp phụ huynh 3. Bởi vì chúng tôi đã tạo ra lớp 3 với ý tưởng rằng chúng tôi sẽ tạo ra cá xương chủ yếu, chúng tôi sẽ phải điều chỉnh cho lớp 5 thay vào đó là một con cá sụn. Về mặt thiết kế chương trình, nếu chúng ta có nhiều cá không xương, rất có thể chúng ta muốn tạo ra các lớp riêng cho mỗi loại cá này.fish.py 1Cá mập, không giống như cá xương, có bộ xương làm từ sụn thay vì xương. Họ cũng có mí mắt và không thể bơi ngược. Cá mập có thể, tuy nhiên, tự điều khiển ngược lại bằng cách chìm. Theo điều này, chúng tôi sẽ ghi đè phương thức xây dựng 7 và phương thức 4. Chúng tôi không cần phải sửa đổi phương pháp 3 vì cá mập là cá có thể bơi. Hãy để xem lại lớp trẻ em này:Chúng tôi đã ghi đè các tham số được khởi tạo trong phương thức 7, do đó biến 2 hiện được đặt bằng chuỗi 04, biến ____105 hiện được đặt bằng chuỗi 06 và biến 07 hiện được đặt thành giá trị boolean ____. Mỗi phiên bản của lớp cũng có thể ghi đè các tham số này.fish.py 2Phương pháp 4 hiện in một chuỗi khác so với lớp trong lớp cha mẹ 3 vì cá mập không thể bơi ngược theo cách mà cá xương có thể. 3Bây giờ chúng ta có thể tạo một thể hiện của lớp con 5, vẫn sẽ sử dụng phương pháp 3 của lớp phụ huynh 3:Khi chúng tôi chạy mã này, chúng tôi sẽ nhận được đầu ra sau: Hàm class Fish: def __init__(self, first_name, last_name="Fish", skeleton="bone", eyelids=False): self.first_name = first_name self.last_name = last_name self.skeleton = skeleton self.eyelids = eyelids def swim(self): print("The fish is swimming.") def swim_backwards(self): print("The fish can swim backwards.") 0Với chức năng 0, bạn có thể có quyền truy cập vào các phương thức được kế thừa đã được ghi đè trong một đối tượng lớp.Khi chúng tôi sử dụng hàm 0, chúng tôi đang gọi phương thức cha mẹ vào phương thức con để sử dụng nó. Ví dụ: chúng ta có thể muốn ghi đè một khía cạnh của phương thức cha với chức năng nhất định, nhưng sau đó gọi phần còn lại của phương thức cha mẹ gốc để hoàn thành phương thức.Trong một chương trình học sinh lớp, chúng tôi có thể muốn có một lớp con cho 22 kế thừa từ lớp phụ huynh 23. Trong lớp con 22, chúng tôi có thể muốn ghi đè một phương thức 25 của lớp cha để bao gồm chức năng để tính toán một cấp độ, nhưng vẫn giữ phần còn lại của chức năng của lớp ban đầu. Bằng cách gọi chức năng 0, chúng tôi sẽ có thể đạt được điều này.Hàm 0 được sử dụng phổ biến nhất trong phương thức 7 vì đó là nơi bạn rất có thể cần thêm một số tính độc đáo vào lớp con và sau đó hoàn thành khởi tạo từ cha mẹ.Để xem cách thức hoạt động của nó, hãy để sửa đổi lớp con 7 của chúng tôi. Vì cá hồi thường là cá nước ngọt, hãy để thêm một biến 30 vào phương thức 7 và đặt nó bằng chuỗi 32, nhưng sau đó duy trì phần còn lại của các biến và tham số của lớp cha mẹ::fish.py 4Chúng tôi đã ghi đè phương thức 7 trong lớp con 7, cung cấp một triển khai khác của 7 đã được xác định bởi lớp cha 3 của nó. Trong phương thức 7 của lớp 7 của chúng tôi, chúng tôi đã gọi rõ phương pháp 7 của lớp 3.Bởi vì chúng tôi đã ghi đè phương thức, chúng tôi không còn cần phải vượt qua 8 dưới dạng tham số cho 7 và nếu chúng tôi vượt qua tham số, chúng tôi sẽ đặt lại 43 thay thế. Do đó, chúng tôi sẽ khởi tạo 8 bằng cách gọi biến trong thể hiện đối tượng của chúng tôi.Bây giờ chúng ta có thể gọi các biến khởi tạo của lớp cha và cũng sử dụng biến con duy nhất. Hãy để sử dụng điều này trong một ví dụ 7:fish.py 5 6Đầu ra cho thấy đối tượng 3 của lớp con 7 có thể sử dụng cả biến 7 dành riêng cho trẻ em 30 trong khi cũng có thể gọi các biến 7 của phụ huynh 3 của 8, 2.Hàm Python tích hợp 0 cho phép chúng tôi sử dụng các phương thức lớp cha ngay cả khi ghi đè lên các khía cạnh nhất định của các phương pháp đó trong các lớp con của chúng tôi.Nhiều kế thừaNhiều kế thừa là khi một lớp có thể kế thừa các thuộc tính và phương thức từ nhiều lớp cha. Điều này có thể cho phép các chương trình giảm dự phòng, nhưng nó cũng có thể giới thiệu một số lượng phức tạp cũng như sự mơ hồ nhất định, vì vậy nó nên được thực hiện với suy nghĩ về thiết kế chương trình tổng thể. is when a class can inherit attributes and methods from more than one parent class. This can allow programs to reduce redundancy, but it can also introduce a certain amount of complexity as well as ambiguity, so it should be done with thought to overall program design. Để hiển thị cách thức hoạt động của nhiều kế thừa, hãy để Lôi tạo một lớp con 56 so với kế thừa từ lớp 57 và lớp 58. Chúng ta có thể tạo một phương thức trong mỗi và sau đó sử dụng từ khóa 0 trong lớp con 56:coral_reef.py 7Lớp 57 có một phương thức gọi là 62 in một dòng và lớp 63 có một phương thức gọi là 64 in một dòng khác. Sau đó, chúng tôi gọi cả hai lớp vào tuple thừa kế. Điều này có nghĩa là 65 đang kế thừa từ hai lớp cha.Bây giờ hãy khởi tạo một đối tượng 65:coral_reef.py 8Đối tượng 67 được đặt thành đối tượng 65 và có thể sử dụng các phương thức trong cả hai lớp cha. Khi chúng tôi chạy chương trình, chúng tôi sẽ thấy đầu ra sau: 9Đầu ra cho thấy các phương pháp từ cả hai lớp cha được sử dụng hiệu quả trong lớp con. Nhiều kế thừa cho phép chúng tôi sử dụng mã từ nhiều lớp cha trong lớp con. Nếu cùng một phương thức được xác định trong nhiều phương thức cha mẹ, lớp con sẽ sử dụng phương thức của cha mẹ đầu tiên được khai báo trong danh sách tuple của nó. Mặc dù nó có thể được sử dụng một cách hiệu quả, nên nhiều kế thừa nên được thực hiện một cách cẩn thận để các chương trình của chúng tôi không trở nên mơ hồ và khó hiểu đối với các lập trình viên khác. Sự kết luậnHướng dẫn này đã trải qua việc xây dựng các lớp cha và các lớp con, ghi đè các phương thức và thuộc tính cha mẹ trong các lớp con, sử dụng hàm 0 và cho phép các lớp con được thừa hưởng từ nhiều lớp cha.Kế thừa trong mã hóa hướng đối tượng có thể cho phép tuân thủ nguyên tắc phát triển phần mềm khô (không lặp lại), cho phép thực hiện nhiều hơn với ít mã và lặp lại. Kế thừa cũng buộc các lập trình viên phải suy nghĩ về cách họ đang thiết kế các chương trình họ đang tạo để đảm bảo rằng mã có hiệu quả và rõ ràng. Làm thế nào để bạn sử dụng lớp phụ huynh trong Python?Điều này thường có thể đạt được bằng hai cách. Sử dụng ClassName: Các phương thức lớp của cha mẹ có thể được gọi bằng cách sử dụng ClassName.method bên trong phương thức ghi đè. Sử dụng hàm Super (): Python Super () cung cấp cho chúng tôi cơ sở để chỉ lớp cha mẹ một cách rõ ràng.Parent's class methods can be called by using the Parent classname. method inside the overridden method. Using Super(): Python super() function provides us the facility to refer to the parent class explicitly.
Lớp phụ huynh của lớp cha là gì?Trong lập trình hướng đối tượng, chúng ta có thể kế thừa các đặc điểm của lớp cha.Lớp phụ huynh được gọi là lớp cơ sở trong khi lớp con được gọi là lớp dẫn xuất.Lớp dẫn xuất có thể kế thừa các thành viên dữ liệu, chức năng thành viên của lớp cơ sở.base class while child class is known as derived class. The derived class can inherit data members, member functions of base class.
Làm thế nào để bạn tìm thấy lớp cha mẹ của một lớp học trong Python?Python IssubClass () là chức năng tích hợp được sử dụng để kiểm tra xem một lớp có phải là lớp con của lớp khác hay không.Hàm này trả về true nếu lớp đã cho là lớp con của lớp đã cho khác, nó trả về sai. is built-in function used to check if a class is a subclass of another class or not. This function returns True if the given class is the subclass of given class else it returns False.
Có phải lớp siêu lớp và phụ huynh giống nhau không?Định nghĩa: Một lớp có nguồn gốc từ một lớp khác được gọi là một lớp con (cũng là lớp dẫn xuất, lớp mở rộng hoặc lớp con).Lớp mà lớp con có nguồn gốc được gọi là siêu lớp (cũng là lớp cơ sở hoặc lớp cha).The class from which the subclass is derived is called a superclass (also a base class or a parent class). |