INTRODUCTION
FLOW CONTROL
FUNCTIONS
DATATYPES
OBJECT & CLASS
ADVANCED TOPICS
BỔ SUNG
PYTHON CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.

Interface trong Python

Trong bài này chúng ta sẽ tìm hiểu Interface trong Python, đây là kỹ thuật đóng vai trò rất quan trọng trong kỹ thuật phần mềm, nhất là việc quản lý mã code của Python.

Có một số trường hợp bạn cần tạo ra nhiều class có những phương thức rất giống nhau, nhưng về cách tiếp cận thì có chút khác nhau, điều này có thể gây ra một số nhầm lẫn. Trong trường hợp này bạn có thể sử dụng Interface trong Python để giải quyết.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Lưu ý: Trong Python không có khái niệm interface, nên bài này mình chỉ muốn giải thích cho bạn hiểu ý nghĩa của interface mà thôi.

1. Interface trong Python là gì?

Interface là một bản thiết kế cho các class trong Python. Nó cũng là một class nhưng cách hoạt động khác với những class bình thường. Bạn có thể khai báo các phương thức bên trong interface, nhưng những phương thức này là trừu tượng (abstract), tức là chỉ khai báo chứ không xây dựng nội dung.

Bạn có thể tưởng tượng Interface là một mẫu chuẩn thiết kế cho các loại nhà (đặt tên nó là A), và:

  • Mẫu nhà cấp 4 là một abstract class, bởi nó được triển khai từ A.
  • Mẫu nhà mái thái là một abstract class, bởi nó được triển khai từ A.

Cách tiếp cận Interface trong Python hơi khác so với các ngôn ngữ khác. Hầu hết những ngôn ngữ đó đều sử dụng từ khóa interface để định nghĩa, còn trong Python thì không có, bạn sẽ phải sử dụng một module tên là Abstract Base Classes (ABC) để tạo Interface.

2. Tại sao phải sử dụng Interface trong Python?

Để trả lời cho câu hỏi này thì ta hãy làm một ví dụ nhé.

Ví dụ: Thiết kế chương trình quản lý các loại động vật như chó, mèo, vịt.

Nhận xét: Đây đều là những loại động vật, nó có các hành động chung như di chuyển, ăn ... Vì vậy ta sẽ khai báo một interface Animal, sau đó abstract class sẽ implement (triểu khai) từ Animal.

class Animal:
    def move(self):
        pass

    def eat(self):
        pass

Bây giờ ta sẽ tạo một class Dog:

class Dog(Animal):
    def move(self):
        print("Con chó di chuyển 4 chân")
    def eat(self):
        print("Con chó ăn thịt")

Và đây là class Duck:

class Duck(Animal):
    def move(self):
        print("Con vịt di chuyển 2 chân")
    def eat(self):
        print("Con chó ăn cám")

Trong ví dụ này thì class Animal có thể được xem là một Interface, còn các class Dog và Duck được triển khai (implement) từ Animal.

3. Lời kết

Mình cũng không rõ tại sao Python lại không có khái niệm Interface. Có ý kiến cho rằng bản chất Python không cần interface bởi nó đã có đa kế thừa. Nhưng dù sao đi nữa thì đây vẫn là một ngôn ngữ có cấu trúc rất đặc biệt.

Cùng chuyên mục:

Hàm Dictionary clear() trong Python

Hàm Dictionary clear() trong Python

Cách dùng hàm Dictionary clear() trong Python

Hàm Dictionary copy() trong Python

Hàm Dictionary copy() trong Python

Cách dùng hàm Dictionary copy() trong Python

Hàm Dictionary fromkeys() trong Python

Hàm Dictionary fromkeys() trong Python

Cách dùng hàm Dictionary fromkeys() trong Python

Hàm Dictionary get() trong Python

Hàm Dictionary get() trong Python

Cách dùng hàm Dictionary get() trong Python

Hàm Dictionary items() trong Python

Hàm Dictionary items() trong Python

Cách dùng hàm Dictionary items() trong Python

Hàm Dictionary keys() trong Python

Hàm Dictionary keys() trong Python

Cách dùng hàm Dictionary keys() trong Python

Hàm List append() trong Python

Hàm List append() trong Python

Cách dùng hàm List append() trong Python

Hàm List extend() trong Python

Hàm List extend() trong Python

Cách dùng hàm List extend() trong Python

Hàm List insert() trong Python

Hàm List insert() trong Python

Cách dùng hàm List insert() trong Python

Hàm List remove() trong Python

Hàm List remove() trong Python

Cách dùng hàm List remove() trong Python

Hàm List index() trong Python

Hàm List index() trong Python

Cách dùng hàm List index() trong Python

Hàm List count() trong Python

Hàm List count() trong Python

Cách dùng hàm List count() trong Python

Hàm List pop() trong Python

Hàm List pop() trong Python

Cách dùng hàm List pop() trong Python

Hàm List reverse() trong Python

Hàm List reverse() trong Python

Cách dùng hàm List reverse() trong Python

Hàm List sort() trong Python

Hàm List sort() trong Python

Cách dùng hàm List sort() trong Python

Hàm List copy() trong Python

Hàm List copy() trong Python

Cách dùng hàm List copy() trong Python

Hàm List clear() trong Python

Hàm List clear() trong Python

Cách dùng hàm List clear() trong Python

Hàm Set remove() trong Python

Hàm Set remove() trong Python

Cách dùng hàm Set remove() trong Python

Hàm Set add() trong Python

Hàm Set add() trong Python

Cách dùng hàm Set add() trong Python

Hàm Set copy() trong Python

Hàm Set copy() trong Python

Cách dùng hàm Set copy() trong Python

Top