Các hàm constructors (hàm khởi tạo) thường được sử dụng để khởi tạo một đối tượng trong lập trình hướng đối tượng. Nhiệm vụ của hàm constructor là khởi tạo (gán các giá trị) cho các biến dữ liệu thành viên của lớp khi một đối tượng của lớp được tạo ra. Trong Python, phương thức __init()__ được gọi là hàm constructor và luôn được gọi khi một đối tượng được tạo ra.

Cú pháp khai báo hàm constructor:

def __init__(self):
    # body of the constructor

Các loại hàm constructor

– Hàm constructor mặc định – default constructor: Hàm constructor mặc định là hàm constructor đơn giản, không nhận vào bất kỳ đối số nào. Phần code khai báo của nó chỉ có một đối số là tham chiếu đến chính thể hiện/đối tượng đang được khởi tạo. 

– Hàm constructor có tham số: Hàm constructor có tham số sẽ nhận vào đối số đầu tiên là một tham chiếu đến đối tượng/thể hiện đang được khởi tạo, chính là tham chiếu self, và phần còn lại là các đối số được cung cấp bởi lập trình viên.

Ví dụ về hàm constructor mặc định:

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
# -----------------------------------------------------------


class Cafedev: 
  
    # default constructor 
    def __init__(self): 
        self.geek = "Cafedev"
  
    # a method for printing data members 
    def print_Cafedev(self): 
        print(self.cafedev) 
  
  
# creating object of the class 
obj = Cafedev() 
  
# calling the instance method using the object obj 
obj.print_cafedev() 

Kết quả in ra là:

Cafedev

Ví dụ về hàm constructor có tham số:


class Addition: 
    first = 0
    second = 0
    answer = 0
      
    # parameterized constructor 
    def __init__(self, f, s): 
        self.first = f 
        self.second = s 
      
    def display(self): 
        print("First number = " + str(self.first)) 
        print("Second number = " + str(self.second)) 
        print("Addition of two numbers = " + str(self.answer)) 
  
    def calculate(self): 
        self.answer = self.first + self.second 
  
# creating object of the class 
# this will invoke parameterized constructor 
obj = Addition(1000, 2000) 
  
# perform Addition 
obj.calculate() 
  
# display result 
obj.display() 

Kết quả in ra là:

First number = 1000
Second number = 2000
Addition of two numbers = 3000

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!