Python Lập trình hướng đối tượng: Lớp, Đối tượng, Kế thừa và Hàm tạo

⚡ Tóm tắt thông minh

Lập trình hướng đối tượng trong Python Nó tổ chức mã nguồn xung quanh các lớp và đối tượng, nhóm các dữ liệu và hành vi liên quan lại với nhau. Cách tiếp cận này cho thấy cách định nghĩa các lớp, tạo đối tượng, áp dụng kế thừa và khởi tạo các thuộc tính bằng hàm tạo.

  • 🔘 Sơ đồ lớp học: Lớp này nhóm các dữ liệu và phương thức liên quan lại với nhau thành một bản thiết kế có thể tái sử dụng để tạo ra các đối tượng.
  • ☑️ Các đối tượng: Các đối tượng là các thể hiện của một lớp, mỗi thể hiện lưu trữ các giá trị thuộc tính riêng của nó.
  • Định nghĩa các lớp: Từ khóa class, các phương thức thụt lề và tham số self định nghĩa một Python lớp học.
  • 🧬 Di sản: Lớp dẫn xuất kế thừa các thuộc tính và phương thức từ lớp cơ sở và hỗ trợ đa kế thừa.
  • 🛠️ Người xây dựng: Phương thức __init__() khởi tạo mỗi đối tượng mới với các giá trị được xác định trước.
  • 🤖 Tầm quan trọng của AI: Các thư viện học máy như PyTorcác lớp và mạng mô hình ch như Python các lớp học.

Python Lập trình hướng đối tượng: Lớp, Đối tượng, Kế thừa và Hàm tạo

OOP trong Python

OOP trong Python là một phương pháp lập trình tập trung vào việc sử dụng các đối tượng và lớp giống như các ngôn ngữ lập trình chung khác. Các đối tượng có thể là bất kỳ thực thể nào trong thế giới thực. Python cho phép các nhà phát triển phát triển ứng dụng bằng cách sử dụng phương pháp OOP với trọng tâm chính là khả năng sử dụng lại mã. Rất dễ dàng để tạo các lớp và đối tượng trong Python.

Lớp học là gì?

Một lớp học trong Python là một nhóm logicping Về dữ liệu và hàm. Nó cho phép tự do tạo ra các cấu trúc dữ liệu chứa nội dung tùy ý và do đó dễ dàng truy cập.

Ví dụ, đối với bất kỳ nhân viên ngân hàng nào muốn lấy thông tin chi tiết về khách hàng trực tuyến sẽ phải đến lớp khách hàng, nơi tất cả các thuộc tính của nó như chi tiết giao dịch, chi tiết rút và gửi tiền, nợ chưa thanh toán, v.v. sẽ được liệt kê.

Làm thế nào để xác định Python các lớp học

Để xác định lớp bạn cần xem xét các điểm sau

Bước 1) In Python, các lớp được định nghĩa bởi "Lớp học" từ khóa

class myClass():

Bước 2) Bên trong các lớp, bạn có thể định nghĩa các hàm hoặc phương thức là một phần của lớp này

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • Ở đây chúng ta đã định nghĩa phương thức 1 in ra “Guru99. "
  • Một phương pháp khác mà chúng tôi đã xác định là phương thức 2 in “Kiểm tra phần mềm”+ SomeString. SomeString là biến được cung cấp bởi phương thức gọi

Bước 3) Mọi thứ trong một lớp đều được thụt lề, giống như mã trong hàm, vòng lặp, câu lệnh if, v.v. Bất kỳ thứ gì không được thụt lề đều không có trong lớp

Định nghĩa Python các lớp học

LƯU Ý: Về việc sử dụng “self” trong Python

  • Tham số `self` đề cập đến chính đối tượng đó. Do đó, từ `self` được sử dụng. Vì vậy, bên trong phương thức này, `self` sẽ đề cập đến thể hiện cụ thể của đối tượng đang được thao tác.
  • Self là tên được ưa thích theo quy ước bởi Pythons để chỉ ra tham số đầu tiên của các phương thức cá thể trong Python. Nó là một phần của Python cú pháp truy cập các thành viên của đối tượng

Bước 4) Để tạo một đối tượng của lớp

c = myClass()

Bước 5) Để gọi một phương thức trong một lớp

c.method1()
    c.method2(" Testing is fun")
  • Lưu ý rằng khi gọi phương thức 1 hoặc phương thức 2, chúng ta không cần phải cung cấp từ khóa self. Điều đó được xử lý tự động cho chúng ta. Python thời gian chạy.
  • Python thời gian chạy sẽ chuyển giá trị "tự" khi bạn gọi một phương thức cá thể chẳng hạn, cho dù bạn có cố tình cung cấp nó hay không
  • Bạn chỉ cần quan tâm đến những lập luận vô ngã

Bước 6) Đây là mã hoàn chỉnh

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  def method2(self,someString):    
      print("Software Testing:" + someString)
  
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()

Cách thức hoạt động của tính kế thừa

Kế thừa là một tính năng được sử dụng trong lập trình hướng đối tượng; nó đề cập đến việc xác định một lớp mới với ít hoặc không sửa đổi lớp hiện có. Lớp mới được gọi là Lớp có nguồn gốc và từ cái mà nó kế thừa được gọi là cơ sở. Python hỗ trợ kế thừa; nó cũng hỗ trợ nhiều kế thừa. Một lớp có thể kế thừa các thuộc tính và phương thức hành vi từ một lớp khác gọi là lớp con hoặc lớp thừa kế.

Cơ chế thừa kế hoạt động như thế nào trong Python

Python Cú pháp kế thừa

class DerivedClass(BaseClass):
    body_of_derived_class

Bước 1) Chạy mã sau

# Example file for working with classes
class myClass():
  def method1(self):
      print("Guru99")
        
  
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print ("childClass Method1")
        
  def method2(self):
        print("childClass method2")     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Lưu ý rằng trong childClass, phương thức method1 không được định nghĩa nhưng nó được kế thừa từ lớp cha myClass. Kết quả đầu ra là “Guru99. "

Bước 2) Dòng Uncomment #8 & 10. Chạy code

Bây giờ, phương thức 1 đã được xác định trong childClass và kết quả đầu ra “childClass Method1” được hiển thị chính xác.

Bước 3) Dòng bỏ ghi chú số 9. Chạy mã

Bạn có thể gọi một phương thức của lớp cha bằng cú pháp

ParentClassName.MethodName(self)

Trong trường hợp của chúng ta, chúng ta gọi myClass.method1(self) và GuruSố 99 được in ra như mong đợi.

Bước 4) Dòng không ghi chú số 19. Chạy mã.

Phương thức 2 của lớp con được gọi và “childClass Method2” được in như mong đợi.

Python Người xây dựng

Hàm tạo là một hàm lớp dùng để khởi tạo một đối tượng theo các giá trị được xác định trước.

Nó bắt đầu bằng hai dấu gạch dưới (_). Đó là phương thức __init__()

Trong ví dụ dưới đây, chúng tôi lấy tên người dùng bằng cách sử dụng hàm tạo.

class User:
    name = ""

    def __init__(self, name):
        self.name = name

    def sayHello(self):
        print("Welcome to Guru99, " + self.name)

User1 = User("Alex")
User1.sayHello()

Đầu ra sẽ là:

Chào Mừng Bạn Đến Guru99, Alex

Python 2 Ví dụ

Các mã trên là Python 3 ví dụ, Nếu bạn muốn chạy vào Python 2 vui lòng xem xét đoạn mã sau.

# How to define Python classes
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
  def method2(self,someString):    
      print "Software Testing:" + someString
      
   
      
def main():           
  # exercise the class methods
  c = myClass ()
  c.method1()
  c.method2(" Testing is fun")
  
if __name__== "__main__":
  main()


#How Inheritance works
# Example file for working with classes
class myClass():
  def method1(self):
      print "Guru99"
        
      
class childClass(myClass):
  #def method1(self):
        #myClass.method1(self);
        #print "childClass Method1" 
        
  def method2(self):
        print "childClass method2"     
         
def main():           
  # exercise the class methods
  c2 = childClass()
  c2.method1()
  #c2.method2()

if __name__== "__main__":
  main()

Tìm hiểu hướng dẫn tiếp theo của chúng tôi về Đa hình trong Python

Câu Hỏi Thường Gặp

Lớp là một bản thiết kế định nghĩa các thuộc tính và phương thức, trong khi đối tượng là một thể hiện cụ thể được xây dựng từ lớp đó. Một lớp có thể tạo ra nhiều đối tượng, mỗi đối tượng giữ nguyên...ping dữ liệu của riêng nó.

Python Lập trình hướng đối tượng dựa trên bốn trụ cột: đóng gói (kết hợp dữ liệu với các phương thức), khả năng xử lý, tính toàn vẹn và tính toàn vẹn của dữ liệu.traccác phương pháp bao gồm: che giấu sự phức tạp, kế thừa (tái sử dụng lớp cơ sở) và đa hình (một giao diện, nhiều hình thức).

Biến lớp được khai báo bên trong thân lớp và được chia sẻ bởi mọi thể hiện. Biến thể hiện được gán giá trị bên trong phương thức __init__ bằng cách sử dụng `self` và chỉ thuộc về một đối tượng duy nhất.

Hàm `super()` trả về một đối tượng ủy quyền (proxy) cho lớp cha, cho phép lớp con gọi các phương thức hoặc hàm tạo của lớp cha mà không cần gọi trực tiếp tên lớp đó. Nó thường được viết là `super().__init__()` để khởi tạo các thuộc tính được kế thừa.

Tính đóng gói hạn chế việc truy cập trực tiếp vào dữ liệu bên trong của một đối tượng. Trong PythonThêm tiền tố là một dấu gạch dưới đơn (_name) để bảo vệ, hoặc hai dấu gạch dưới (__name) để thay đổi tên.

Đúng. A Python Lớp có thể kế thừa từ nhiều lớp cha, chẳng hạn như lớp Child(A, B). Python Giải quyết các tên phương thức trùng lặp bằng cách sử dụng Thứ tự Giải quyết Phương thức (MRO), được kiểm tra bằng phương thức mro().

Lập trình hướng đối tượng là cốt lõi của các framework trí tuệ nhân tạo và máy học. Các thư viện như PyTorch và scikit-learn mô hình hóa các mạng, lớp và bộ ước lượng dưới dạng các lớp, vì vậy bạn có thể tạo lớp con và tái sử dụng chúng để xây dựng mô hình.

Đúng vậy. GitHub Copilot và các trợ lý AI tạo ra Python Các lớp, hàm tạo và kế thừa được tạo ra từ một đoạn mã ngắn. Chúng tự động hóa các đoạn mã lặp đi lặp lại, tuy nhiên bạn nên xem lại kết quả đầu ra để đảm bảo logic chính xác.

Tóm tắt bài viết này với: