Kế Thừa Class Trong Python (P1) - Bizfly Cloud
Có thể bạn quan tâm
- Techblog
- Software Engineering
I, Giới thiệu
Class cùng với object là những thành phần lõi của Python. Class cung cấp một cách tổ chức các attributes(data) và methods (behaviors). Một khái niệm vô cùng quan trọng của OOP(Object Oriented Programming) là class inheritance (dịch đại ý là kế thừa class). Class inheritance cho phép chúng ta tạo ra một class "thừa kế" (inherit) mọi tính năng của một hay nhiều parent class, chỉnh sửa các tính năng đó và đồng thời thêm các methods, attributes. Trong bài viết này, mình cùng các bạn khám phá khái niệm này trong Python.
II, Cách kế thừa một class
Cú pháp để kế thừa một class làm parent class như sau:
class Parent: pass class Child(Parent): pass class Parent: passclass Child(Parent): passCác parent class(es) được định nghĩa trong () sau tên của child class.
Để kiểm tra parent class(es) của một Để kiểm tra parent class(es) của một class là gì, chúng ta dùng cú pháp .__bases__ . Câu lệnh sẽ trả về một tuple chứa các parent class(es) của . Đối với class Child ở trên, cú pháp trên sẽ trả về:
(object,)Oh vậy object chính là parent của parents. Vì Python là một ngôn ngữ OO(Object Oriented) nên mọi thứ trong Python đều là object ngoại trừ control flow. Và object là base classes của mọi objects trong Python. Một ví dụ để thấy điều này đó là:
In [1]: int.__bases__ Out[1]: (object,)III. Các cách mở rộng class thông qua kế thừa
Đây là parent class chúng ta sẽ dùng trong ba phần phía dưới:
class Animal: def __init__(self, age, gender): self.age = age self.gender = gender1. Thêm method(s) mới:
class Dog(Animal): def bark(self): print("Woof Woof") misa = Dog(1, 'gay') misa.bark()Output sẽ là:
Woof Woof2. Định nghĩa lại, chỉnh sửa method(s) có sẵn của parent class(es)
class Chihuahua(Dog): def bark(self): print('Yab Yab') mic = Chihuahua(2, 'male') mic.bark()Output sẽ là:
Yab Yab3. Thêm attribute(s) mới
class Bear(Animal): def __init__(self, age, gender, fur_color): super().__init__(age, gender) self.fur_color = fur_colorKhái niệm super() mình sẽ giải thích ở sau. Các bạn có thể hiểu super() trong context hiện tại là để gọi phiên bản trước — tức là class Animal. Ở ví dụ trên, đó là truyền vào init của class Animal hai attributes đó là age, gender như định nghĩa của nó.
polar_bear = Bear(1, 'male', 'white') # __dict__ trả về một dictionary chứa instance data của instance polar_bear.__dict__Output:
{'age': 1, 'gender': 'male', 'fur_color': 'white'}Như các bạn thấy polar_bar có đầy đủ hai attributes của Animal đó là age, gender, và attribute fur_color mới được thêm vào class Bear
IV. Quan hệ giữa các child và parent classes
Sự "thừa kế" giữa child và base class(es) sẽ tạo ra một quan hệ "huyết thống" giữa 2.
Ví dụ kiểm tra loại instance của polar_bear:
isinstance(polar_bear, Bear) True isinstance(polar_bear, Animal) TrueDo đó, một đoạn code hoat động với instance của parent class thì nên hoạt động với instance của child class.
V. Kết luận
Trong phần này, mình đã đã giới thiệu các tính chất cơ bản của class - một tính năng lõi của Python. Mong bài này có thể giúp bạn bổ sung kiến thức và áp dụng được trong công việc. Trong phần sau, mình sẽ nói về các tính năng nâng cao hơn của class mà không phải Python developers lâu năm nào cũng nắm rõ. Rất mong được sự đón xem của các bạn!
SHAREFacebookTwitterTừ khóa » Sử Dụng Class Trong Python
-
Tìm Hiểu Class Và Object Trong Python
-
Class Trong Python - Viblo
-
Class Và Cách Khai Báo Class Trong Python
-
Lớp Và đối Tượng Trong Python - Openplanning
-
Class Trong Python (lập Trình Hướng đối Tượng OOP)
-
Giới Thiệu Chung Về Class Trong Python, Constructor | Tự Học ICT
-
Sử Dụng Class Trong Python | Lê Vũ Nguyên Dạy Học Lập Trình
-
Lớp Và đối Tượng Trong Lập Trình Hướng đối Tượng Với Python
-
Xây Dựng Lớp (class) Và Tạo đối Tượng (object) Trong Python
-
Lớp Và đối Tượng Trong Python - TEK4
-
Class Và Objects Trong Python - 40+ Bài Học Python Miễn Phí
-
Giải Mã Lớp Và đối Tượng Trong Python Cho Người Mới Bắt đầu - T3H
-
Class Và Object Trong Python | Lập Trình Từ Đầu
-
CLASS VÀ OBJECT TRONG PYTHON - Online Courses - Mifago