Kế thừa là khả năng của một lớp [lớp con/lớp dẫn xuất/lớp con] để lấy hoặc kế thừa các thuộc tính hoặc thuộc tính từ một số lớp khác [lớp cha/lớp cơ sở]. Kế thừa làm tăng khả năng sử dụng lại mã. Chúng ta không cần phải viết đi viết lại cùng một mã. Kế thừa nó cho phép các lập trình viên thêm nhiều tính năng hơn vào một lớp hoặc sửa đổi hành vi hiện có
Kế thừa đơn giảnHãy xem thủ tục thừa kế đơn giản này
Phương thức
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
1 được định nghĩa trong lớp class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
2 không phải trong lớp class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
3. Khi chúng ta kế thừa từ lớp cơ sở [ở dòng 9], chúng ta sẽ lấy các thuộc tính và thuộc tính của nó cho lớp con. Đó là lý do tại sao chúng ta có quyền truy cập vào phương thức class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
1 ở lớp con và các đối tượng của nó [ở dòng 18 và 19]Các thuộc tính, thuộc tính hoặc phương thức của lớp cơ sở sẽ có sẵn cho lớp con chứ không phải ngược lại. Nếu chúng tôi viết
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
0 thì chúng tôi sẽ gặp lỗi như. class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
1 bởi vì, phương thức class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
2 được định nghĩa trong lớp con, không phải trong lớp chaclass Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
3Python hỗ trợ kế thừa đa cấp. Khi một lớp được dẫn xuất từ một lớp cũng được dẫn xuất từ một lớp khác [một lớp có nhiều hơn một lớp cha] thì sự kế thừa như vậy được gọi là Kế thừa đa cấp. Mức độ thừa kế có thể được mở rộng đến bất kỳ cấp độ nào tùy thuộc vào mối quan hệ
Ở đây,
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
4 chỉ có phương thức class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
5, class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
6 có phương thức class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
5 và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
8 [vì lớp B mở rộng lớp A] và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
9 có phương thức class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
5 , class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
8 và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
22 [vì lớp C mở rộng lớp B và lớp B mở rộng c]Kế thừa có tính chất bắc cầu [có nghĩa là nếu lớp B kế thừa từ lớp A khác, thì tất cả các lớp con của B sẽ tự động kế thừa từ lớp A]
đa thừa kếPython hỗ trợ đa kế thừa, trong đó một lớp có thể có nhiều lớp cha
Ở đây,
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
9 kéo dài cả class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
4 và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
6, đó là lý do tại sao các phương thức của class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
4 và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
6 có sẵn cho lớp CThứ tự giải quyết phương pháp [MRO]Hãy bắt đầu thưởng thức trò chơi của bài viết này
Ở đây, chúng ta có hai phương thức
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
28 trong class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
4 và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
6. class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
9 kéo dài cả class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
4 và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
6. Vì vậy, class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
9 nhận cả hai phương thức của class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
28. Sau đó, những gì sẽ được xuất ra ở dòng 16? Đối với hệ thống phân cấp lớp, Python cần xác định lớp nào sẽ sử dụng khi cố gắng truy cập một thuộc tính theo tên. Để làm điều này, Python xem xét thứ tự của các lớp cơ sở
Đối với đoạn mã trước, phương thức
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
28 của class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
4 sẽ được thực thi và chúng ta sẽ nhận được đầu ra “class A speak”. Chúng ta thay đổi class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
88 [tại dòng, 11] thành class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
89 thì phương thức class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
28 của class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
6 sẽ được thực thi và chúng ta sẽ nhận được đầu ra “class B speak”Hãy thay đổi mã của
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
9 như thế nàoclass Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
3Ở đây, phương thức
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
28 của class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
9 sẽ ghi đè phương thức class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
28 trước đó. Và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
76 sẽ in ra “class C speak”Bây giờ, theo cuộc thảo luận của chúng tôi về MRO, hãy đoán xem đầu ra của mã này sẽ là gì
chúc mừng. bạn hoàn toàn đúng. Đầu ra sẽ là “A”
Triết lý nhỏ về thừa kếHãy xem xét một kịch bản mối quan hệ như
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
Lưu ý rằng, cả
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
77 và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
78 đều có thuộc tính class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
79 và cả hai đều giống hệt nhau. Nếu class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
78 sẽ mở rộng lớp class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
77 thì chúng ta chỉ cần viết thuộc tính class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
42 trong lớp class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
78. Nhưng chúng tôi đã không làm điều đó. Bởi vì, không hẳn người nhà cũng sẽ là bạn mà người nhà nhất định sẽ là người. Vì vậy, triết lý là, để kế thừa, cấu trúc giai cấp phải phản ánh đúng mối quan hệ giữa các giai cấpVài lời về `siêu`Đôi khi chúng ta cần gọi các phương thức của lớp cha tới một phương thức bị ghi đè của lớp con. Chúng ta có thể đạt được điều này bằng hàm
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
44. Chúng ta có thể trực tiếp sử dụng các phương thức của super class hoặc sửa đổi chúng [điều này rất phổ biến]Chúng ta có thể viết
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
6 nhưclass Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
2Nhìn vào super[B, self] [ở đây,
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
44 có hai đối số. một lớp và đối tượng của nó]. Đây là một cách gọi khác của class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
44Sự khác biệt giữa super[] và super[className, self]
Python 3 khuyến khích sử dụng
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
48, thay vì sử dụng class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
49, cả hai đều có tác dụng như nhau. Python 2, chỉ hỗ trợ cú pháp class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
49. Vì Python 2 được sử dụng rộng rãi nên Python 3 cũng hỗ trợ cho kiểu gọi class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
44 này. Bạn biết thêm về siêu ở đâynội quanVì python hỗ trợ các loại kế thừa khác nhau nên đôi khi nó cần được xem xét kỹ lưỡng
class Contact:
12.
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]class Contact:
12 có hai đối số. một đối tượng và một lớp. Nó trả về
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]class Contact:
14 nếu lớp đã cho nằm ở bất kỳ đâu trong chuỗi kế thừa của lớp đối tượng
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
Đầu ra.
Đúng
Đúng
Tại dòng 11, chúng tôi nhận được
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
14 vì class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
16 là đối tượng của class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
4. Tại dòng 12, chúng tôi nhận được
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
14 vì class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
4 nằm trong chuỗi kế thừa của lớp đối tượng class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
20. class Contact:
21.
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]class Contact:
21 nhận hai đối số [lớp, lớp]. Nó trả về
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]class Contact:
14 nếu lớp đầu tiên chứa lớp thứ hai ở bất kỳ đâu trong chuỗi thừa kế của nó
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
Đầu ra.
Đúng
Đúng
Đầu ra ở dòng 15 có vẻ ổn nhưng đầu ra ở dòng 16 có thể trông kỳ lạ. Rõ ràng,
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
24 không phải là lớp con của chính nó [class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
24 ], nhưng Python hoạt động theo cách nàyclass Contact:
26.
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]class Contact:
26 cung cấp một bộ các lớp cơ sở trực tiếp của một lớp
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
Đầu ra.
[
[
[
[
Ghi chú. Theo mặc định, mọi lớp Python là lớp con của lớp
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
28 tích hợp- ____629.
class Contact:
29 trả về danh sách tất cả
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
các lớp con của một lớp. Giống nhưclass Contact:
26 ,
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]class Contact:
32 chỉ đi sâu một cấp so với lớp chúng tôi đang làm việc.
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
8đầu ra
class Contact:
33.
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]class Contact:
33 là một thuộc tính chứa đầy đủ MRO [Thứ tự giải quyết phương thức] của một lớp dưới dạng một bộ
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
7Một trò chơi khác sử dụng __init__ và __new__Đầu ra.
[
Chuyển đổi từ lớp sang đối tượng được gọi là khởi tạo.
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
35 được sử dụng để khởi tạo đối tượng. Bên trong chức năng class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
35 chỉ nên khởi tạo chức năng, không có gì hơnĐây là mã mẫu sử dụng
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
35class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
4Trong quá trình tạo đối tượng, phương thức
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
35 không được thực thi trước, phương thức được thực thi trước là class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
39. Phương thức class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
10 nhận hầu hết các đối số giống nhau tại class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
35 và nó chịu trách nhiệm thực sự tạo đối tượng mới [trước khi khởi tạo đối tượng]Chúng ta có thể sử dụng
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
39 khi cần kiểm soát việc tạo một thể hiện mớiGiả sử chúng ta có 3 lớp,
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
13, class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
14 và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
15. Chúng tôi cần khởi tạo class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
16 cho tệp Văn bản, class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
17 cho tệp hình ảnh và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
13 cho các loại tệp khác. Chúng ta có thể có được điều này bằng cách khởi tạo chúng trực tiếpNhưng nếu chúng ta có thể khởi tạo chúng chỉ bằng cách sử dụng lớp cha [
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
13 ] tùy thuộc vào nội dung tệp thì sao? . Khá thú vị, KHÔNG?
Đầu ra.
Ở đây, chúng tôi đang khởi tạo các lớp
class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
16, ____617 và class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
13 bằng cách sử dụng lớp class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
13 [cha] tùy thuộc vào nội dung của tệp [class Contact:
name = TextField[]
email = EmailAddressField[]
class Person[Contact]:
first_name = TextField[]
last_name = TextField[]
class Friend[Person]:
relationship_details = TextField[]
class FamilyMember[Person]:
relationship_details = TextField[]
family_members = IntegetField[]
04]. Xem sự khác biệt giữa các đầu ra của dòng 35, 36 và 37Đó là tất cả cho trò chơi ngày hôm nay
Chúc bạn chơi game vui vẻ với Python
Bạn cũng có thể đọc- Hiểu về trình trang trí Python
- Các chức năng như đối tượng hạng nhất trong Python
- Đóng cửa bằng Python và Javascript
- Bảng điều hướng phản ứng
- priority_queue tối thiểu trong C++
Câu chuyện này được xuất bản trong Đáng chú ý, nơi có hơn 10.000 độc giả đến mỗi ngày để tìm hiểu về con người và ý tưởng hình thành các sản phẩm mà chúng ta yêu thích