Hướng dẫn python oops medium - python oops vừa

Xác định các thực thể trong thế giới thực với các đối tượng phần mềm

Logo Python từ Python.orgPython.org

Python là ngôn ngữ lập trình hướng đối tượng (OOP)-điều này có nghĩa là các đối tượng là trung tâm của ngôn ngữ. Lập trình hướng đối tượng là một mô hình đưa ra một cách cấu trúc các chương trình để các thuộc tính và hành vi khác nhau có thể được đưa vào một cá nhân

Tổng quan

Có nhiều bài viết có sẵn trên Internet bao gồm chủ đề này, tôi đã cố gắng hết sức để đưa ra tổng quan về khái niệm OOPS dưới dạng hướng dẫn nhanh

Rất tiếc là gì?

Lập trình hướng đối tượng (OOP) là một mô hình lập trình dựa trên khái niệm về các đối tượng trên mạng, có thể chứa dữ liệu, dưới dạng các trường, thường được gọi là thuộc tính; và mã, dưới dạng thủ tục, thường được gọi là phương pháp. (OOP) is a programming paradigm based on the concept of “objects”, which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods.

Ví dụ, một người là một đối tượng có các thuộc tính nhất định như chiều cao, giới tính, tuổi tác, v.v ... Nó cũng có một số phương pháp nhất định như di chuyển, nói chuyện, v.v.

Xây dựng các khối oops

  • Các đối tượng
  • Lớp
  • Di sản
  • Đa hình
  • Trừu tượng hóa
  • Đóng gói

Đóng gói trong Python là quá trình kết thúc các biến và phương thức thành một thực thể duy nhất. Trong lập trình, một lớp là một ví dụ kết thúc tất cả các biến và phương thức được xác định bên trong nó.

Trong Python, đóng gói có thể đạt được bằng cách tuyên bố các thành viên dữ liệu của một lớp là riêng tư hoặc được bảo vệ. Trong Python, ’riêng tư và’ được bảo vệ được gọi là bộ sửa đổi truy cập, vì chúng sửa đổi truy cập của các biến hoặc phương thức được xác định trong một lớp

Mọi thứ trong Python là một đối tượng và hầu hết mọi thứ đều có thuộc tính và phương thức. Tất cả các chức năng đều có thuộc tính tích hợp __doc__, trả về tài liệu được xác định trong mã nguồn chức năng

Khi chúng ta xác định một lớp chỉ mô tả hoặc bản thiết kế của đối tượng được tạo. Không có phân bổ bộ nhớ cho đến khi chúng tôi tạo đối tượng của nó.class only the description or a blueprint of the object is created. There is no memory allocation until we create its object.

Lớp học là gì?

Một lớp là một bản thiết kế cho đối tượng đó.blueprint for that object.

Chúng ta có thể nghĩ về một lớp học như một bản phác thảo (nguyên mẫu) của một ngôi nhà. Nó chứa tất cả các chi tiết về sàn, cửa ra vào, cửa sổ, vv Dựa trên những mô tả này, chúng tôi xây dựng ngôi nhà. Nhà là đối tượng.

Vì nhiều ngôi nhà có thể được làm từ một bản thiết kế nhà, chúng ta có thể tạo ra nhiều đối tượng từ một lớp. Một đối tượng còn được gọi là một thể hiện của một lớp và quá trình tạo đối tượng này được gọi là khởi tạo.instantiation.

Xác định một lớp và đối tượng trong Python

Giống như các định nghĩa chức năng bắt đầu với từ khóa def trong Python, các định nghĩa lớp bắt đầu bằng từ khóa lớp.def keyword in Python, class definitions begin with a class keyword.

Ví dụ:

class employee:
age = 30
designation = Manager
def greet(self):
print('Hello')

Chúng tôi đã thấy rằng đối tượng lớp có thể được sử dụng để truy cập các thuộc tính khác nhau.

Nó cũng có thể được sử dụng để tạo các phiên bản đối tượng mới (khởi tạo) của lớp đó. Quy trình để tạo một đối tượng tương tự như một cuộc gọi chức năng.create new object instances (instantiation) of that class. The procedure to create an object is similar to a function call.

emp_obj = employee()

Điều này sẽ tạo ra một thể hiện đối tượng mới có tên EMP_OBJ. Chúng ta có thể truy cập các thuộc tính của các đối tượng bằng tiền tố tên đối tượng.Attributes có thể là dữ liệu hoặc phương thức. Các phương thức của một đối tượng là các hàm tương ứng của lớp đó. Điều này có nghĩa là để nói, vì nhân viên.Greet là một đối tượng hàm (thuộc tính của lớp), nhân viên.Greet sẽ là một đối tượng phương thức.
Attributes may be data or method. Methods of an object are corresponding functions of that class.
This means to say, since employee.greet is a function object (attribute of class), employee.greet will be a method object.

Từ "tự"

Bản thân được sử dụng để đại diện cho thể hiện của lớp. Với từ khóa này, bạn có thể truy cập các thuộc tính và phương thức của lớp trong Python. Nó liên kết các thuộc tính với các đối số đã cho. Self cũng được sử dụng để chỉ một trường biến trong lớp. Hãy để lấy một ví dụ và xem nó hoạt động như thế nào:instance of the class.
With this keyword, you can access the attributes and methods of the class in python. It binds the attributes with the given arguments.
self is also used to refer to a variable field within the class. Let’s take an example and see how it works:

class Office:

# name made in constructor
def __init__(self, US):
self.location = US

def office_location(self):
return self.location

Di sản

Kế thừa là thủ tục trong đó 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. Lớp có thuộc tính và phương thức được kế thừa được gọi là lớp cha. Và lớp kế thừa các thuộc tính từ lớp cha là lớp con.inherits the attributes and methods of another class.
The class whose properties and methods are inherited is known as the Parent class. And the class that inherits the properties from the parent class is the Child class.

Cú pháp cơ bản:

class parent:
statements

class child(parent):
statements

Trong một lớp con được kế thừa, một lớp cha có thể được đề cập với việc sử dụng hàm Super (). Chức năng siêu trả về một đối tượng tạm thời của siêu lớp cho phép truy cập vào tất cả các phương pháp của nó vào lớp con của nó.super() function. The super function returns a temporary object of the superclass that allows access to all of its methods to its child class.

Các loại kế thừa

  1. Kế thừa kế thừa duy nhất cho phép một lớp dẫn xuất kế thừa các thuộc tính và hành vi từ một lớp cha mẹ đơn lẻ. Nó cho phép một lớp dẫn xuất để thừa hưởng các thuộc tính và hành vi của một lớp cơ sở, do đó cho phép tái sử dụng mã cũng như thêm các tính năng mới vào mã hiện có.
    Single inheritance enables a derived class to inherit properties and behavior from a single parent class. It allows a derived class to inherit the properties and behavior of a base class, thus enabling code reusability as well as adding new features to the existing code.
  2. Nhiều lớp kế thừa có thể được lấy từ nhiều lớp cơ sở trong Python, tương tự như C ++. Điều này được gọi là nhiều kế thừa. Trong nhiều kế thừa, các tính năng của tất cả các lớp cơ sở được kế thừa vào lớp dẫn xuất. Cú pháp cho nhiều kế thừa tương tự như thừa kế đơn.
    A class can be derived from more than one base class in Python, similar to C++. This is called multiple inheritance.
    In multiple inheritance, the features of all the base classes are inherited into the derived class. The syntax for multiple inheritance is similar to single inheritance.
  3. Thừa kế đa cấp cũng có thể kế thừa từ một lớp dẫn xuất. Điều này được gọi là kế thừa đa cấp. Nó có thể có bất kỳ độ sâu nào trong Python.in Di sản đa cấp, các tính năng của lớp cơ sở và lớp dẫn xuất được di truyền vào lớp dẫn xuất mới.
    We can also inherit from a derived class. This is called multilevel inheritance. It can be of any depth in Python.
    In multilevel inheritance, features of the base class and the derived class are inherited into the new derived class.
  4. Kế thừa phân cấp khi nhiều hơn một lớp dẫn xuất được tạo ra từ một cơ sở duy nhất loại thừa kế này được gọi là kế thừa phân cấp. Trong chương trình này, chúng tôi có một lớp cha mẹ (cơ sở) và hai lớp (có nguồn gốc).
    When more than one derived classes are created from a single base this type of inheritance is called hierarchical inheritance. In this program, we have a parent (base) class and two child (derived) classes.
  5. Di truyền lai bao gồm nhiều loại thừa kế được gọi là thừa kế lai
    Inheritance consisting of multiple types of inheritance is called hybrid inheritance

Đa hình

Đa hình có nghĩa là nhiều dạng. Trong Python, chúng ta có thể tìm thấy cùng một toán tử hoặc chức năng có nhiều biểu mẫu. Nó cũng hữu ích trong việc tạo các lớp khác nhau sẽ có các phương thức lớp cùng tên. Điều đó giúp sử dụng lại rất nhiều mã và giảm độ phức tạp của mã. Đa hình cũng được liên kết với thừa kế như chúng ta sẽ thấy trong một số ví dụ dưới đây.multiple forms. In python we can find the same operator or function taking multiple forms.
It also useful in creating different classes which will have class methods with same name. That helps in re-using a lot of code and decreases code complexity.
Polymorphism is also linked to inheritance as we will see in some examples below.

class Square:
side = 5
def area_sq(self):
return self.side * self.side
class Triangle:
base = 5
height = 2
def area_tri(self):
return 0.5 * self.base * self.height
sq = Square()
tri = Triangle()
print("Area of square: ", sq.area_sq())
print("Area of triangle: ", tri.area_tri())
Output:
Area of square: 25
Area of triangle: 5.0

Trừu tượng hóa

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ó. Ví dụ, hãy xem xét bạn đã mua một thiết bị điện tử mới. Cùng với tiện ích, bạn có được hướng dẫn sử dụng, hướng dẫn cách sử dụng ứng dụng, nhưng hướng dẫn sử dụng này không có thông tin liên quan đến hoạt động nội bộ của tiện ích.hiding the real implementation of an application from the user and emphasizing only on usage of it.
For example, consider you have bought a new electronic gadget. Along with the gadget, you get a user guide, instructing how to use the application, but this user guide has no info regarding the internal working of the gadget.

Thông qua quá trình trừu tượng hóa trong Python, một lập trình viên có thể che giấu tất cả các dữ liệu/quy trình không liên quan của một ứng dụng để giảm tính và tăng hiệu quả.irrelevant data/process of an application in order to reduce complexity and increase efficiency.

Trong Python, sự trừu tượng có thể đạt được bằng cách sử dụng các lớp và phương thức trừu tượng trong các chương trình của chúng tôi. abstract classes and methods in our programs.

Phương pháp trừu tượng không chứa bất kỳ triển khai. Thay vào đó, tất cả các triển khai có thể được xác định trong các phương pháp của các lớp con kế thừa lớp trừu tượng. Một lớp trừu tượng được tạo bằng cách nhập một lớp có tên ‘ABC, từ mô -đun‘ ABC, và kế thừa lớp ‘ABC.sub-classes that inherit the abstract class.
An abstract class is created by importing a class named ‘ABC’ from the ‘abc’ module and inheriting the ‘ABC’ class.
Below is the syntax for creating the abstract class.

Syntax
from abc import ABC
Class ClassName(ABC):

Đóng gói

Đóng gói trong Python là quá trình kết thúc các biến và phương thức thành một thực thể duy nhất. Trong lập trình, một lớp là một ví dụ kết thúc tất cả các biến và phương thức được xác định bên trong nó. in Python is the process of wrapping up variables and methods into a single entity. In programming, a class is an example that wraps all the variables and methods defined inside it.

Trong Python, đóng gói có thể đạt được bằng cách tuyên bố các thành viên dữ liệu của một lớp là riêng tư hoặc được bảo vệ. Trong Python, ’riêng tư và’ được bảo vệ được gọi là bộ sửa đổi truy cập, vì chúng sửa đổi truy cập của các biến hoặc phương thức được xác định trong một lớpPrivate’ and ‘Protected’ are called Access Modifiers, as they modify the access of variables or methods defined in a class

Example:

class Computer:def __init__(self):
self.__maxprice = 900
def sell(self):
print("Selling Price: {}".format(self.__maxprice))
def setMaxPrice(self, price):
self.__maxprice = price
c = Computer()
c.sell()
# change the price
c.__maxprice = 1000
c.sell()
# using setter function
c.setMaxPrice(1000)
c.sell()
Output:
Selling Price: 900
Selling Price: 900
Selling Price: 1000

Trong chương trình trên, chúng tôi đã xác định một lớp máy tính.

Chúng tôi đã sử dụng phương pháp __init__() để lưu trữ giá bán tối đa là Computer. Chúng tôi đã cố gắng sửa đổi giá. Tuy nhiên, chúng tôi không thể thay đổi nó vì Python coi __maxprice là thuộc tính riêng tư.

Như được hiển thị, để thay đổi giá trị, chúng ta phải sử dụng hàm setter, tức là setMaxPrice() lấy giá làm tham số.

Conclusion:

  • Lập trình hướng đối tượng giúp chương trình dễ hiểu cũng như hiệu quả.
  • Vì lớp có thể chia sẻ, mã có thể được sử dụng lại.
  • Dữ liệu là an toàn và an toàn với sự trừu tượng hóa dữ liệu.
  • Đa hình cho phép cùng một giao diện cho các đối tượng khác nhau, vì vậy các lập trình viên có thể viết mã hiệu quả.

Người giới thiệu

  1. https://www.programiz.com/python-programming/object-oriented-programming
  2. https://www.geeksforgeeks.org/object-oriented-programming-in-python-set-1-class-and-its-members/
  3. https://www.analyticsvidhya.com/blog/2020/09/object-oriented-programming/
  4. https://towardsdatascience.com/2-must-know-oop-concepts-in-python-48d643a7385
  5. https://www.datacamp.com/community/tutorials/python-oop-tutorial
  6. https://www.youtube.com/watch?v=ZDa-Z5JzLYM