Hướng dẫn data abstraction in python w3schools - trừu tượng hóa dữ liệu trong python w3schools

Các lớp và đối tượng PythonClasses and Objects


Các lớp/đối tượng Python

Python là một ngôn ngữ lập trình định hướng đối tượng.

Hầu hết mọi thứ trong Python là một đối tượng, với các thuộc tính và phương pháp của nó.

Một lớp giống như một hàm tạo đối tượng hoặc "bản thiết kế" để tạo các đối tượng.


Tạo một lớp học

Để tạo một lớp, hãy sử dụng từ khóa class:

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  x = 5

Hãy tự mình thử »


Tạo đối tượng

Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
print(p1.x)

Hãy tự mình thử »


Tạo đối tượng

Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Tạo một đối tượng có tên P1 và in giá trị của X:

p1 = myClass () in (p1.x)

Hàm __init __ ()

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(self, name, age):
    self.name = name
    self.age = age

Hãy tự mình thử »

Tạo đối tượng
print(p1.age)

Hãy tự mình thử »

Tạo đối tượng The __init__() function is called automatically every time the class is being used to create a new object.



Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Tạo một đối tượng có tên P1 và in giá trị của X:

p1 = myClass () in (p1.x)

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(self, name, age):
    self.name = name
    self.age = age

Hãy tự mình thử »

Tạo đối tượng

Hãy tự mình thử »

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(self, name, age):
    self.name = name
    self.age = age

Hãy tự mình thử »
    return f"{self.name}({self.age})"

Tạo đối tượng

Tạo đối tượng

Hãy tự mình thử »


Tạo đối tượng

Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Tạo một đối tượng có tên P1 và in giá trị của X:

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(self, name, age):
    self.name = name
    self.age = age

Hãy tự mình thử »
    print("Hello my name is " + self.name)

Tạo đối tượng
p1.myfunc()

Hãy tự mình thử »

Tạo đối tượng The self parameter is a reference to the current instance of the class, and is used to access variables that belong to the class.


Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:

Tạo một đối tượng có tên P1 và in giá trị của X:

p1 = myClass () in (p1.x)

Thí dụ

Tạo một lớp có tên MyClass, với một thuộc tính có tên X:

lớp MyClass: & nbsp; x = 5
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age

Hãy tự mình thử »
    print("Hello my name is " + abc.name)

Tạo đối tượng
p1.myfunc()

Bây giờ chúng ta có thể sử dụng lớp có tên MyClass để tạo đối tượng:


Tạo một đối tượng có tên P1 và in giá trị của X:

p1 = myClass () in (p1.x)


Hàm __init __ ()

Các ví dụ trên là các lớp và đối tượng ở dạng đơn giản nhất của chúng và không thực sự hữu ích trong các ứng dụng thực tế.


Để hiểu ý nghĩa của các lớp, chúng ta phải hiểu hàm __init __ () tích hợp.

Tất cả các lớp có một hàm gọi là __init __ (), luôn được thực thi khi lớp được bắt đầu.


Sử dụng hàm __init __ () để gán các giá trị cho các thuộc tính đối tượng hoặc các hoạt động khác cần thiết để thực hiện khi đối tượng được tạo:

Tạo một lớp có tên là người, sử dụng hàm __init __ () để gán các giá trị cho tên và tuổi:


người lớp: & nbsp; def __init __ (tự, tên, tuổi): & nbsp; & nbsp; & nbsp; self.name = name & nbsp; & nbsp; & nbsp; tự.age = tuổi


Trừu tượng được sử dụng để ẩn chức năng nội bộ của hàm từ người dùng. Người dùng chỉ tương tác với việc triển khai cơ bản của chức năng, nhưng hoạt động bên trong được ẩn. Người dùng quen thuộc với "Chức năng nào" nhưng họ không biết "nó hoạt động như thế nào.""what function does" but they don't know "how it does."

Nói một cách đơn giản, tất cả chúng ta đều sử dụng điện thoại thông minh và rất quen thuộc với các chức năng của nó như máy ảnh, ghi âm thoại, quay số gọi, v.v., nhưng chúng ta không biết làm thế nào các hoạt động này đang diễn ra trong nền. Chúng ta hãy lấy một ví dụ khác - khi chúng ta sử dụng điều khiển TV để tăng âm lượng. Chúng tôi không biết làm thế nào việc nhấn một khóa làm tăng âm lượng của TV. Chúng tôi chỉ biết nhấn nút "+" để tăng âm lượng.

Đó chính xác là sự trừu tượng hoạt động trong khái niệm hướng đối tượng.

Tại sao sự trừu tượng là quan trọng?

Trong Python, một sự trừu tượng được sử dụng để ẩn dữ liệu/lớp không liên quan để giảm độ phức tạp. Nó cũng tăng cường hiệu quả ứng dụng. Tiếp theo, chúng ta sẽ tìm hiểu làm thế nào chúng ta có thể đạt được sự trừu tượng bằng chương trình Python.

Các lớp học trừu tượng trong Python

Trong Python, sự trừu tượng có thể đạt được bằng cách sử dụng các lớp và giao diện trừu tượng.

Một lớp bao gồm một hoặc nhiều phương thức trừu tượng được gọi là lớp trừu tượng. Phương pháp trừu tượng không chứa việc thực hiện của họ. Lớp trừu tượng có thể được kế thừa bằng phương pháp phân lớp và phương pháp trừu tượng có được định nghĩa của nó trong lớp con. Các lớp trừu tượng có nghĩa là bản thiết kế của lớp khác. Một lớp trừu tượng có thể hữu ích khi chúng ta đang thiết kế các chức năng lớn. Một lớp trừu tượng cũng hữu ích để cung cấp giao diện tiêu chuẩn cho các triển khai các thành phần khác nhau. Python cung cấp mô -đun ABC để sử dụng sự trừu tượng trong chương trình Python. Hãy xem cú pháp sau.abc module to use the abstraction in the Python program. Let's see the following syntax.

Cú pháp

Chúng tôi nhập lớp ABC từ mô -đun ABC.abc module.

Các lớp cơ sở trừu tượng

Một lớp cơ sở trừu tượng là chương trình ứng dụng phổ biến của giao diện cho một tập hợp các lớp con. Nó có thể được sử dụng bởi bên thứ ba, sẽ cung cấp các triển khai như với các plugin. Nó cũng có lợi khi chúng tôi làm việc với cơ sở mã lớn khó nhớ tất cả các lớp.

Làm việc của các lớp trừu tượng

Không giống như ngôn ngữ cấp cao khác, Python không cung cấp lớp trừu tượng. Chúng ta cần nhập mô -đun ABC, cung cấp cơ sở để xác định các lớp cơ sở trừu tượng (ABC). ABC hoạt động bằng cách trang trí các phương pháp của lớp cơ sở là trừu tượng. Nó đăng ký các lớp cụ thể như là việc thực hiện cơ sở trừu tượng. Chúng tôi sử dụng bộ trang trí @abstractmethod để xác định một phương thức trừu tượng hoặc nếu chúng tôi không cung cấp định nghĩa cho phương thức, nó sẽ tự động trở thành phương thức trừu tượng. Hãy hiểu ví dụ sau.@abstractmethod decorator to define an abstract method or if we don't provide the definition to the method, it automatically becomes the abstract method. Let's understand the following example.

Thí dụ -

Output:

The mileage is 30kmph
The mileage is 27kmph 
The mileage is 25kmph 
The mileage is 24kmph

Giải trình -

Trong mã trên, chúng tôi đã nhập mô -đun ABC để tạo lớp cơ sở trừu tượng. Chúng tôi đã tạo ra lớp xe được thừa hưởng lớp ABC và xác định một phương thức trừu tượng có tên Mileage (). Sau đó, chúng tôi đã thừa hưởng lớp cơ sở từ ba lớp con khác nhau và thực hiện phương pháp trừu tượng khác nhau. Chúng tôi đã tạo các đối tượng để gọi phương thức trừu tượng.abc module to create the abstract base class. We created the Car class that inherited the ABC class and defined an abstract method named mileage(). We have then inherited the base class from the three different subclasses and implemented the abstract method differently. We created the objects to call the abstract method.

Hãy hiểu một ví dụ khác.

Hãy hiểu một ví dụ khác.

Thí dụ -

Output:

Triangle has 3 sides
Square has 4 sides
Pentagon has 5 sides
Hexagon has 6 sides

Giải trình -

Trong mã trên, chúng tôi đã nhập mô -đun ABC để tạo lớp cơ sở trừu tượng. Chúng tôi đã tạo ra lớp xe được thừa hưởng lớp ABC và xác định một phương thức trừu tượng có tên Mileage (). Sau đó, chúng tôi đã thừa hưởng lớp cơ sở từ ba lớp con khác nhau và thực hiện phương pháp trừu tượng khác nhau. Chúng tôi đã tạo các đối tượng để gọi phương thức trừu tượng.sides() method. The hidden implementations for the sides() method inside the each subclass comes into play. The abstract method sides() method, defined in the abstract class, is never invoked.

Điểm để nhớ

Dưới đây là những điểm mà chúng ta nên nhớ về lớp cơ sở trừu tượng trong Python.

  • Một lớp trừu tượng có thể chứa cả phương thức bình thường và phương pháp trừu tượng.
  • Một bản tóm tắt không thể được khởi tạo; Chúng ta không thể tạo các đối tượng cho lớp trừu tượng.

Trừu tượng là điều cần thiết để ẩn chức năng cốt lõi từ người dùng. Chúng tôi đã đề cập đến tất cả các khái niệm cơ bản về sự trừu tượng trong Python.


Tóm tắt dữ liệu trong Python là gì?

Sự trừu tượng trong Python được định nghĩa là một quá trình xử lý sự phức tạp bằng cách che giấu thông tin không cần thiết từ người dùng. Đây là một trong những khái niệm cốt lõi của các ngôn ngữ lập trình hướng đối tượng (OOP).a process of handling complexity by hiding unnecessary information from the user. This is one of the core concepts of object-oriented programming (OOP) languages.

Sự trừu tượng trong Python W3Schools là gì?

Sự trừu tượng trong Python là quá trình che giấu việc triển khai thực sự của một ứng dụng từ người dùng và chỉ nhấn mạnh vào việc sử dụng nó.the process of hiding the real implementation of an application from the user and emphasizing only on usage of it.

Làm thế nào nó có thể đạt được sự trừu tượng hóa dữ liệu trong Python?

Trừu tượng dữ liệu trong Python có thể đạt được thông qua việc tạo các lớp trừu tượng và kế thừa chúng sau này.Trước khi thảo luận về các lớp trừu tượng là gì, chúng ta hãy giới thiệu ngắn gọn về thừa kế.Kế thừa trong OOP là một cách thông qua đó một lớp kế thừa các thuộc tính và phương thức của một lớp khác.creating abstract classes and inheriting them later. Before discussing what abstract classes are, let us have a brief introduction of inheritance. Inheritance in OOP is a way through which one class inherits the attributes and methods of another class.

Sự trừu tượng và đóng gói trong Python là gì?

Trừu tượng dữ liệu và đóng gói đồng nghĩa với việc trừu tượng hóa dữ liệu đạt được thông qua đóng gói.Trừu tượng được sử dụng để ẩn các chi tiết nội bộ và chỉ hiển thị các chức năng.Tóm tắt một cái gì đó có nghĩa là đặt tên cho mọi thứ, để cái tên nắm bắt ý tưởng cơ bản về những gì một chức năng hoặc toàn bộ chương trình làm.data abstraction is achieved through encapsulation. Abstraction is used to hide internal details and show only functionalities. Abstracting something means to give names to things, so that the name captures the basic idea of what a function or a whole program does.