Hướng dẫn python constructor - hàm tạo python



Constructor trong Python là một loại phương thức (hàm) đặc biệt được sử dụng để khởi tạo các thể hiện của lớp. Constructor có thể có hai loại. là một loại phương thức (hàm) đặc biệt được sử dụng để khởi tạo các thể hiện của lớp. Constructor có thể có hai loại.

  1. Constructor tham số.
  2. Constructor không tham số.

Định nghĩa contructor được thực thi khi chúng ta tạo đối tượng của lớp này.


Nội dung chính

  • Tạo contructor trong Python
  • Ví dụ: Đếm số lượng đối tượng của một lớp
  • Ví dụ: constructor không tham số trong Python
  • Ví dụ: constructor tham số trong Python
  • Các hàm lớp dựng sẵn của Python
  • Các thuộc tính lớp tích hợp

Tạo contructor trong Python

Trong python, phương thức __ init __ mô phỏng contructor của lớp. Phương thức này được gọi khi lớp được khởi tạo. Chúng ta có thể chuyển bất kỳ số lượng đối số nào tại thời điểm tạo đối tượng lớp, tùy thuộc vào định nghĩa __ init __. Nó chủ yếu được sử dụng để khởi tạo các thuộc tính của lớp. Mỗi lớp phải có một constructor.

Ví dụ sau khởi tạo các thuộc tính của lớp Employee.

class Employee:

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

    def display (self):
        print("ID: %d \nName: %s" % (self.id, self.name))

emp1 = Employee("Vinh", 101)
emp2 = Employee("Trung", 102)

# gọi phương thức display() để hiển thị thông tin employee 1
emp1.display();
  
# gọi phương thức display() để hiển thị thông tin employee 2
emp2.display();

Kết quả:

ID: 101 
Name: Vinh
ID: 102 
Name: Trung



Ví dụ: Đếm số lượng đối tượng của một lớp

class Student:
    count = 0

    def __init__(self):
        Student.count = Student.count + 1

s1 = Student()
s2 = Student()
s3 = Student()
print("Số lượng sinh viên là:", Student.count)

Kết quả:


Ví dụ: Đếm số lượng đối tượng của một lớp

class Student:

    # Constructor không tham số
    def __init__(self):
        print("Đây là constructor không tham số")

    def show(self, name):
        print("Hello", name)

student = Student()
student.show("The Mac")

Kết quả:

Ví dụ: Đếm số lượng đối tượng của một lớp



Ví dụ: constructor không tham số trong Python

class Student:

    # Constructor tham số
    def __init__(self, name):
        print("Đây là constructor tham số.")
        self.name = name

    def show(self):
        print("Hello", self.name)

student = Student("The Mac")
student.show()

Kết quả:

Đây là constructor tham số.
Hello The Mac


Ví dụ: Đếm số lượng đối tượng của một lớp

Ví dụ: constructor không tham số trong Python

Đây là constructor không tham số
Hello The Mac
Ví dụ: constructor tham số trong Python
1 Các hàm lớp dựng sẵn của Python Các hàm dựng sẵn được định nghĩa trong lớp được mô tả trong bảng sau.
2 HàmMô tả
3 getattr(obj,name,default) Nó được sử dụng để truy cập thuộc tính của đối tượng.
4 setattr(obj, name,value) Nó được sử dụng để đặt một giá trị cụ thể cho thuộc tính cụ thể của một đối tượng.

delattr(obj, name)

class Student:

    def __init__(self, name, id, age):
        self.name = name;
        self.id = id;
        self.age = age

  
# tạo đối tượng của lớp Student 
s = Student("Trung", 101, 22) 

# in thuộc tính name của đối tượng s
print(getattr(s, 'name'))
  
# gán giá trị của age cho 23
setattr(s, "age", 23)

# in giá trị của age
print(getattr(s, 'age'))

# true nếu student chứa thuộc tính id
print(hasattr(s, 'id'))

# xóa thuộc tính age
delattr(s, 'age')

# bắn ra lỗi nếu age đã bị xóa
print(s.age)

Kết quả:

Trung
23
True
    print(s.age)
AttributeError: 'Student' object has no attribute 'age'


Ví dụ: Đếm số lượng đối tượng của một lớp

Ví dụ: constructor không tham số trong Python

Đây là constructor không tham số
Hello The Mac

Đây là constructor không tham số
Hello The Mac
Ví dụ: constructor tham số trong Python
1 Các hàm lớp dựng sẵn của Python Các hàm dựng sẵn được định nghĩa trong lớp được mô tả trong bảng sau.
2 HàmMô tả
3 getattr(obj,name,default) Nó được sử dụng để truy cập thuộc tính của đối tượng.
4 setattr(obj, name,value) Nó được sử dụng để đặt một giá trị cụ thể cho thuộc tính cụ thể của một đối tượng.
5 delattr(obj, name) Nó được sử dụng để xóa một thuộc tính cụ thể.

delattr(obj, name)

class Student:

    def __init__(self, name, id, age):
        self.name = name;
        self.id = id;
        self.age = age

    def display_details(self):
        print("Name:%s, ID:%d, age:%d" % (self.name, self.id))

s = Student("Trung", 101, 22)
print(s.__doc__)
print(s.__dict__)
print(s.__module__)

Kết quả:

ID: 101 
Name: Vinh
ID: 102 
Name: Trung
0