Giao diện và lớp trừu tượng trong python với ví dụ

Trong hướng dẫn Python này, chúng ta sẽ thảo luận về giao diện python và chúng ta cũng sẽ kiểm tra giao diện trong python là gì với các ví dụ. Hãy để chúng tôi tìm hiểu

  • Giao diện trong Python là gì?
  • Làm cách nào để tạo giao diện trong Python?
  • Giao diện chính thức và không chính thức trong Python là gì?
  • Ví dụ về giao diện Python
  • Giao diện Python so với lớp trừu tượng

Mục lục

Giao diện là gì?

  • Giao diện là tập hợp các chữ ký phương thức nên được cung cấp bởi lớp triển khai
  • Một giao diện chứa các phương thức trừu tượng trong tự nhiên. Các phương thức trừu tượng sẽ có khai báo duy nhất vì không có triển khai
  • Một giao diện trong python được định nghĩa bằng lớp python và là một lớp con của giao diện. Giao diện là giao diện chính cho tất cả các giao diện
  • Việc triển khai sẽ được thực hiện bởi các lớp sẽ kế thừa giao diện. Giao diện trong Python hơi khác so với các ngôn ngữ khác như Java hoặc C# hoặc C++
  • Triển khai một giao diện là một cách viết mã có tổ chức

Hãy để chúng tôi hiểu các giao diện Python với một vài ví dụ

Cách khai báo giao diện trong Python

Sau đây, chúng ta sẽ xem cách khai báo module giao diện trong Python

cú pháp

class MyInterface[zope.interface.Interface]
  • Đầu tiên, chúng tôi sẽ nhập zope. mô-đun giao diện
  • các zope. giao diện là một mô-đun được sử dụng để triển khai giao diện đối tượng trong python
  • các zope. thư viện giao diện là cách thoát ra khi có điều gì đó không rõ ràng
  • Giao diện hoạt động như một kế hoạch chi tiết để thiết kế các lớp. Đây, @zope. giao diện. triển khai [Bữa trưa] được triển khai bằng cách sử dụng trình triển khai trang trí trong lớp
  • Gói này xuất thuộc tính và giao diện trực tiếp
  • Để khắc phục sự không chắc chắn của mô-đun zope giao diện được triển khai

Thực hiện bởi[lớp] – Hàm này trả về giá trị boolean. Nếu lớp triển khai giao diện, kết quả là Đúng, ngược lại là Sai

Ví dụ

import zope.interface 
class Lunch[zope.interface.Interface]:
northindian = zope.interface.Attribute["chocolate"]
def food[self, northindian]:
pass
def colddrinks[self, beverages]:
pass
@zope.interface.implementer[Lunch]

class Lunch[zope.interface.Interface]:
def food[self, northindian]:
return northindian
def colddrinks[self,beverages]:
return beverages

colddrinks = Lunch['colddrinks']
food = Lunch['food']
print[Lunch.implementedBy[Lunch]]
print[type[colddrinks]]
print[type[food]]

Here, we can see that the class is implemented in the interface. So, the boolean value true is returned. Also, we can see the output two times the is returned because I have defined two functions def food and def colddrinks in a class.

Hình ảnh bên dưới hiển thị đầu ra

Mô-đun giao diện Python

Tạo giao diện Python

Có hai cách để tạo và triển khai giao diện trong python là –

  • Giao diện không chính thức
  • Giao diện chính thức

Giao diện không chính thức trong python

Một giao diện không chính thức trong Python là một lớp. Nó định nghĩa các phương thức có thể bị ghi đè nhưng không cần thực thi cưỡng chế. Giao diện không chính thức trong python được gọi là giao thức vì nó không chính thức và không thể thực thi chính thức. Các phương pháp thường được sử dụng được sử dụng để thực hiện một số hoạt động là

  1. __iter__ – Phương thức này trả về một trình vòng lặp cho một đối tượng
  2. __len__ – Phương thức này trả về độ dài của chuỗi, danh sách, từ điển, bộ dữ liệu
  3. __contain__ – Phương thức này được sử dụng để kiểm tra xem nó có chứa chuỗi khác không

Ví dụ

class Chocolate:
    def __init__[self, items]:
        self.__items = items
    def __len__[self]:
        return len[self.__items]
    def __contains__[self, items]:
        return items in self.__items
fav_chocolate = Chocolate[["kitkat", "diarymilk", "munch","5star"]]
print[len[fav_chocolate]]
print["kitkat" in fav_chocolate]
print["munch" not in fav_chocolate]
print["dirymilk" not in fav_chocolate]
print["5star" in fav_chocolate]
  • Trong ví dụ này, tôi đã triển khai __len__ và __contain__. Chúng ta có thể trực tiếp sử dụng hàm len[] trên cá thể sô cô la, sau đó chúng ta phải kiểm tra một mục xem nó có trong danh sách không
  • Sử dụng toán tử in, print[len[fav_chocolate]] dùng để tìm độ dài của danh sách
  • Ở đây, chúng ta có thể thấy rằng nó trả về một giá trị boolean. Nếu mục có trong danh sách, nó sẽ trả về true nếu không nó sẽ trả về false. Ảnh chụp màn hình bên dưới hiển thị đầu ra

Giao diện không chính thức trong Python

Giao diện chính thức trong python [ABC]

Ở đây, chúng ta có thể thấy giao diện chính thức trong python

  • Một giao diện chính thức là một giao diện được thi hành một cách chính thức. Để tạo giao diện chính thức, chúng ta cần sử dụng ABC [Lớp cơ sở trừu tượng]
  • ABC được giải thích khi chúng ta định nghĩa một lớp trừu tượng về bản chất, chúng ta cũng định nghĩa các phương thức trên lớp cơ sở là các phương thức trừu tượng
  • Bất kỳ đối tượng nào chúng ta lấy từ các lớp cơ sở đều buộc phải triển khai các phương thức đó
  • Trong ví dụ này, tôi đã nhập một mô-đun abc và định nghĩa một lớp Food. @abc. abstractmethod là một công cụ trang trí biểu thị các phương thức trừu tượng, nó được sử dụng để khai báo các phương thức trừu tượng cho các thuộc tính
  • Tôi đã định nghĩa một hàm def taste bằng cách sử dụng từ khóa def, bằng cách sử dụng từ khóa self chúng ta có thể truy cập các thuộc tính và phương thức của lớp
  • Và, tôi cũng đã định nghĩa một lớp con là lớp North_indian và sau đó in một thể hiện từ lớp thức ăn. Câu lệnh pass được sử dụng như một trình giữ chỗ

Ví dụ

import abc
class Food [abc.ABC]:
  @abc.abstractmethod
  def taste[ self ]:
      pass
class north_indian[Food] :
  def taste[self]:
     print[" Cooking! "]
s = north_indian []
print[ isinstance[s, Food]]

Ảnh chụp màn hình bên dưới hiển thị đầu ra

Trong đầu ra này, chúng ta có thể thấy đầu ra đó là một giá trị boolean. Nó chỉ trả về true nếu thể hiện có mặt trong lớp, nếu không nó trả về false

Giao diện chính thức trong python [ABC]

Ví dụ về giao diện Python

Ở đây, chúng ta sẽ xem cách code cho lớp dẫn xuất định nghĩa một phương thức trừu tượng. Vì vậy, chúng tôi đã nhập mô-đun abc và chúng tôi có tên lớp là myinterface[abc. ABC]

Ví dụ

import abc
class myinterface[abc.ABC]:
      @abc.abstractclassmethod
      def display[]:
        pass
print["This is Myclass"]
class Myclass[myinterface]:
      def display[]:
        pass
obj=Myclass[]

Ở đây, obj = Myclass[] được gọi và nó in ra kết quả là “Đây là Myclass”. Bạn có thể tham khảo ảnh chụp màn hình bên dưới để biết các ví dụ về giao diện python

Ví dụ về giao diện Python

Python nhiều giao diện

Bây giờ, chúng ta có thể thấy nhiều giao diện trong Python

Trong ví dụ dưới đây, chúng ta phải nhập mô-đun abc, sau đó chúng ta có thể khởi tạo lớp là Food và lớp con là NorthIndian[] và SouthIndian[]

Ví dụ

import abc
class Food [abc.ABC]:
  @abc.abstractmethod
  def taste[ self ]:
   pass
class northIndian[Food] :
  def taste[self]:
   print[" Cooking! "]
class Food [abc.ABC]:
   @abc.abstractmethod
   def taste[self]:
    pass
class southIndian[Food] :
   def taste[self] :
    print[" Cooking!. "]
a = northIndian []
s = southIndian[]
print[ isinstance[s, northIndian]]
print[ isinstance[s, southIndian]]
print[ isinstance[a, northIndian]]
print[ isinstance[a, southIndian]]

Ở đây, chúng ta có thể thấy trong kết quả là sai vì thể hiện s được gán cho SouthIndian nhưng trong câu lệnh in, nó được gán là [s, NorthIndian]. Chúng ta có thể tham khảo các ảnh chụp màn hình dưới đây

Python nhiều giao diện

Giao diện Python so với lớp trừu tượng

Hãy cho chúng tôi hiểu sự khác biệt giữa giao diện Python và lớp trừu tượng

Giao diện PythonPython lớp trừu tượngGiao diện là một tập hợp các phương thức và thuộc tính trên đối tượng đó. Chúng ta có thể sử dụng một lớp cơ sở trừu tượng để định nghĩa và thực thi một giao diện. Tất cả các phương thức của một giao diện là trừu tượngMột lớp trừu tượng có thể có các phương thức trừu tượng cũng như các phương thức cụ thể. Chúng tôi sử dụng một giao diện nếu tất cả các tính năng cần được triển khai khác nhau cho các đối tượng khác nhau. Các lớp trừu tượng được sử dụng khi có một số tính năng chung được chia sẻ bởi tất cả các đối tượng như chúng là. Giao diện chậm so với lớp trừu tượng. Các lớp trừu tượng nhanh hơn

Bạn có thể thích các hướng dẫn Python sau đây

  • Cách chuyển đổi Chuỗi thành Ngày giờ trong Python
  • Trình tự thoát trong Python
  • Python hiểu danh sách lambda
  • Phân luồng và đa luồng trong Python
  • Cách chuyển đổi độ Python sang radian
  • Toán tử so sánh Python
  • Hướng dẫn không gian tên Python
  • Danh sách liên kết trong Python

Trong hướng dẫn Python này, chúng ta đã tìm hiểu về giao diện Python. Ngoài ra, chúng tôi đã đề cập đến các chủ đề dưới đây

  • Giao diện là gì?
  • Cách khai báo giao diện trong Python
  • Cách tạo giao diện trong Python
  • Ví dụ về giao diện Python
  • Python nhiều giao diện
  • Giao diện Python so với lớp trừu tượng

Bijay Kumar

Python là một trong những ngôn ngữ phổ biến nhất ở Hoa Kỳ. Tôi đã làm việc với Python trong một thời gian dài và tôi có kinh nghiệm làm việc với nhiều thư viện khác nhau trên Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, v.v… Tôi có kinh nghiệm làm việc với nhiều khách hàng khác nhau . Kiểm tra hồ sơ của tôi

Giao diện và lớp trừu tượng trong Python là gì?

Một lớp trừu tượng có thể chứa cả phương thức trừu tượng và không trừu tượng, trong khi Giao diện chỉ có thể có phương thức trừu tượng . Các lớp trừu tượng được mở rộng, trong khi các Giao diện được triển khai.

Giao diện và lớp trừu tượng với ví dụ LÀ GÌ?

Sự khác biệt giữa lớp trừu tượng và giao diện

Ví dụ về giao diện trong Python là gì?

Trong các ngôn ngữ hướng đối tượng như Python, giao diện là tập hợp các chữ ký phương thức do lớp triển khai cung cấp . Triển khai một giao diện là một cách viết mã có tổ chức và đạt được sự trừu tượng. Gói cước.

Giao diện và lớp trừu tượng có giống nhau trong Python không?

Giống như các lớp, các giao diện định nghĩa các phương thức. Không giống như các lớp, các phương thức này là trừu tượng . Một phương thức trừu tượng là một phương thức mà giao diện chỉ định nghĩa. Nó không thực hiện các phương pháp.

Chủ Đề