Bài 1: Class và cách khai báo class trong Python

Bài 1: Class và cách khai báo class trong Python

Mở đầu cho series học lập trình Python nâng cao chúng ta sẽ tìm hiểu về thực hành hướng đối tượng (OOP) trong Python. Lập trình hướng đối tượng trong Python là một phong cách lập trình cho phép bạn tổ chức mã của mình thành các đối tượng có tính chất và hành vi tương ứng. Trong OOP, các đối tượng là các thể hiện của các lớp (classes), và mỗi lớp đều có các thuộc tính (attributes) và phương thức (methods).

1. Khai báo Class trong Python

Như các bạn đã được tìm hiểu thì một đối tượng có thể có một hoặc nhiều class và trong mỗi class thì lại chứa một hoặc nhiều các thuộc tính và các phương thức... Để khai báo một class trong Python thì mọi người sử dụng cú pháp sau:

class ClassName:
    # code

 

Trong đó, className là tên của class mà bạn muốn khai báo.

VD: Mình sẽ khai báo class Person.

class Person:
    # code

 

2. Khai báo thuộc tính trong Class

Như ở trên mình có nói thì một class có thể chứa một hoặc rất nhiều các thuộc tính bên trong. Thuộc tính trong class, cũng tương tự như biến ở trong lập trình hướng thủ tục. Để khai báo một thuộc tính trong class thì mọi người chỉ cần khai báo như khai báo một biến bình thường và lưu ý là nó phải nằm trong phạm vi của class.

VD: Mình sẽ khai báo thêm một số thuộc tính cho class Person ở trên.

class Person:
    name = "Nguyen Van A";
    age = 22;
    male = True

 

3. Khai báo phương thức trong Class

Phương thức ở trong hướng đối tượng cũng tương tự như hàm ở trong lập trình hướng thủ tục và một class thì có thể không có hoặc có nhiều phương thức. Để khai báo một phương thức trong Python mọi người chỉ cần khai báo như khai báo một hàm bình thường, và lưu ý là phải khai báo trong phạm vi của class.

VD: Mình sẽ khai báo thêm một số phương thức cho class Person ở trên.

class Person:
    # thuộc tính
    name = "Nguyễn Văn A";
    age = 22;
    male = True
    # phương thức
    def setName(self, name):
        self.name = name
    
    def getName(self):
        return self.name
    
    def setAge(self, age):
        self.age = age
    
    def getAge(self):
        return self.age
    
    def setMale(self, male):
        self.male = male
    
    def getMale(self):
        return self.male

 

Chú ý: Ở trong ví dụ trên mình có sử dụng từ khóa self. Thì từ khóa self ở đây dùng để thể hiện lại chính class đang chứa nó, và dựa vào nó thì chúng ta có thể truy cập vào các phần tử đang có trong class hiện tại.

4. Khởi tạo class

Sau khi đã khai báo được class trong Python rồi, thì để khởi tạo nó mọi người sử dụng cú pháp sau:

variableName = ClassName()

 

Trong đó:

  • variableName là biến mà bạn muốn thể hiện lại đối tượng.
  • ClassName là class mà bạn muốn khởi tạo.

VD: Mình sẽ khởi tạo class person ở trên.

person = Person()

 

Sau khi đã khởi tạo được class rồi thì biến được instane lại class đó sẽ có thể truy cập được các phần tử được cho phép trong class đó. Bằng cách sử dụng dấu . theo cú pháp sau:

# truy cap den thuoc tinh
object.propertyName
#truy cap den phuong thuc
object.methodName()

 

Trong đó:

  • object là biến thể hiện lại object.
  • propertyName là tên thuộc tính mà bạn muốn truy xuất.
  • methodName là tên phương thức mà bạn muốn truy xuất.

VD: Mình sẽ truy xuất đến các thuộc tính và phương thức trong class Person.

# instance
person = Person()
# properties
print(person.name) # Nguyễn Văn A
print(person.age) # 22
print(person.male) # True
# methods
person.setName("Nguyễn Thị HH")
print(person.getName()) # Nguyễn Thị HH
person.setAge(22)
print(person.getAge()) # 22 
person.setMale(False)
print(person.getMale()) # False

 

5. Lời kết

Bài này chúng ta tạm kết thúc ở đây thôi, các bạn nhớ ôn thật kỹ phần này nhé, sau này sẽ dùng nhiều đấy!