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:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
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!