Python OOP: Lớp, Đối tượng, Kế thừa và Hàm tạo với ví dụ

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 logic của dữ liệu và chức năng. Nó cho phép tự do tạo các cấu trúc dữ liệu chứa nội dung tùy ý và do đó có thể truy cập dễ dàng.

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, trong đó tất cả các thuộc tính như chi tiết giao dịch, chi tiết rút tiền 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 đã xác định phương thức1 in “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

  • Sự tự lập luận đề cập đến chính đối tượng đó. Do đó việc sử dụng từ tự. Vì vậy, bên trong phương thức này, self sẽ đề cập đến phiên bản cụ thể của đối tượng đang được vận hành.
  • 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 chúng ta gọi phương thức 1 hoặc phương thức 2, chúng ta không phải cung cấp từ khóa tự. Việc đó được tự động xử lý cho chúng tôi bởi 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ế.

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

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 1 không được xác định nhưng nó được lấy từ myClass gốc. Đầ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 tôi, chúng tôi gọi myClass.method1(self) và Guru99 được in 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 dấu gạch dưới kép (_). Nó 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 đến với 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

Tổng kết

“Lớp” là một nhóm logic các chức năng và dữ liệu. Python lớp cung cấp tất cả các tính năng tiêu chuẩn của Lập trình hướng đối tượng.

  • Cơ chế kế thừa lớp
  • Lớp dẫn xuất ghi đè bất kỳ phương thức nào của lớp cơ sở
  • Một phương thức có thể gọi phương thức của lớp cơ sở có cùng tên
  • Python Các lớp được xác định theo từ khóa "lớp học" chính nó
  • 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
  • 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.
  • Sự tự lập luận trong Python đề cập đến chính đối tượng đó. 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
  • Python thời gian chạy sẽ tự động chuyển giá trị "tự" khi bạn gọi một phương thức phiên bản, cho dù bạn có cố tình cung cấp nó hay không
  • In Python, 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 được gọi là lớp con hoặc lớp thừa kế.