Python Class

Class trong python là gì ? Python là một ngôn ngữ lập trình hướng đối tượng. Hầu hết mọi thứ trong Python là đối tượng. Một Lớp (Class) hay một đối tượng (object) nó bao gồm các phương thức và thuộc tính. Bài này chúng ta sẽ tìm hiểu về cách tạo một class trong ptyhon, cách sử dụng và cách gọi một class trong python.

Ví dụ sau đây là một class đơn giản trong pyhon:

Ví dụ

class Myclass:
    name = "Hoa"

a = Myclass()
print(a.name)

Cách tạo Class trong python.

Để tạo một class trong python sử dụng từ khóa : class

Ví dụ tạo một lớp (class) tên là : Fruists và có 1 thuộc tính tên là: fruist_name ta viết code như sau:

Ví dụ

class Fruists:
    fruist_name = "Apple"

fruist_object = Fruists()
print(fruist_object.fruist_name)

Ví dụ trên là một ví dụ đơn giản về class, nó không phải là một class thường dùng thật sự trong các ứng dụng chương trình phần mềm của python.Để hiểu hơn về class bạn phải hiểu về hàm __init__(), cái mà nó luôn thực thi khi class đã được tạo.

Hàm __init__() trong python dùng để gán giá trị vào thuộc tính của đối tượng

Sau đây là ví dụ tạo một lớp (class) tên là : Nguoi_Person, sử dụng hàm __init__() để gán giá trị cho thuộc tính : tên (ten_name) và tuổi (tuoi_age).

Ví dụ

class Nguoi_Person:
    def __init__(self, ten_name, tuoi_age):
        self.ten_name = ten_name
        self.tuoi_age = tuoi_age   

Cách sử dụng Class trong python.

Ví dụ

class Nguoi_Person:
    def __init__(self, ten_name, tuoi_age):
        self.ten_name = ten_name
        self.tuoi_age = tuoi_age
       
p1 = Nguoi_Person("Hoang Luu","37")
print("Ten la: ", p1.ten_name)
print("Tuoi la: ",p1.tuoi_age)

Kết quả :

Ten la:  Hoang Luu
Tuoi la:  37

Giải thích:

Nguoi_Person : là tên lớp.

def __init__(self, ten_name, tuoi_age) : là hàm gán giá trị thuộc tính vào đối tượng.

p1 :  là đối tượng được tạo bởi lớp Nguoi_Person.

p1.ten_name, p1.tuoi_age : là các thuộc tính của đối tượng p1.

self : là tham số để tham chiếu tới lớp Nguoi_Person.

Như ở ví trên đã tạo một class có tên là Nguoi_Person, hàm def __init__(self, ten_name, tuoi_age) để gán giá trị  vào thuộc tính của đối tượng, p1 là đối tượng được tạo bởi lớp Nguoi_Person và p1.ten_name, p1.tuoi_age các thuộc tính của đối tượng p1.

Tham số self là một tham số để tham chiếu tới lớp hiện tại và được sử dụng để truy cập đến các biến thuộc lớp về lớp đó. Tên tham số này không nhất thiết phải đặt tên là self, bạn có thể đặt tên bất kỳ tùy theo ý thích của bạn, nhưng nó phải là tham số đầu tiên của hàm trong lớp.

Phương thức của đối tượng:

Các đối tượng chứa các phương thức, các phương thức trong đối tượng như các hàm thuộc đối tượng.Do đó Hàm trong python  còn có thể gọi là phương thức.

Ví dụ dưới đây tạo một lớp tên là Nguoi_Person với phương thức, hàm tên là Get_name() để in ra giá trị của thuộc tính tên (ten_name).

Ví dụ

class Nguoi_Person:
    def __init__(self, ten_name, tuoi_age):
        self.ten_name = ten_name
        self.tuoi_age = tuoi_age
    def Get_name(self):
        name = self.ten_name
        print(name)

p1 = Nguoi_Person("Hoang Luu","37")
p1.Get_name()

Kết quả :

Ten la:  Hoang Luu

Thay đổi giá trị thuộc tính của đối tượng trong python.

Bạn có thể thay đổi giá trị thuộc tính của đối tượng trong python.

Ví dụ thay đổi tên "Hoang Luu" thành tên "Hoang Hong Phong" ta làm như sau:

p1.ten_name = "Hoang Hong Phong"

Ví dụ

class Nguoi_Person:
    def __init__(self, ten_name, tuoi_age):
        self.ten_name = ten_name
        self.tuoi_age = tuoi_age

p1 = Nguoi_Person("Hoang Luu","37")
print("Ten ban dau la: ", p1.ten_name)
p1.ten_name = "Hoang Hong Phong"
print("Ten sau khi thay doi la: ",p1.ten_name)

Kết quả :

Ten ban dau la:  Hoang Luu
Ten sau khi thay doi la:  Hoang Hong Phong

Xóa thuộc tính của đối tượng trong python.

Trong python sử dụng từ khóa del để xóa thuộc tính của đối tượng.

Ví dụ xóa thuộc tính ten_name của đối tượng p1 sử dụng lệnh:  

del p1.ten_name

Ví dụ

class Nguoi_Person:
    def __init__(self, ten_name, tuoi_age):
        self.ten_name = ten_name
        self.tuoi_age = tuoi_age

p1 = Nguoi_Person("Hoang Luu","37")
print("Ten ban dau la: ", p1.ten_name)
p1.ten_name = "Hoang Hong Phong"
print("Ten sau khi thay doi la: ",p1.ten_name)
del p1.ten_name
print(p1.ten_name)

Kết quả :

'Nguoi_Person' object has no attribute 'ten_name'

Sau khi sử dụng lệnh: del p1.ten_name, đối tượng Nguoi_Person sẽ xóa thuộc tính ten_name và không còn thuộc tính ten_name, do đó sẽ xuất hiện lỗi : 'Nguoi_Person' object has no attribute 'ten_name'.

Xóa đối tượng trong python.

Sử dụng từ khóa del để xóa đối tượng p1 :

del p1

Ví dụ

class Nguoi_Person:
    def __init__(self, ten_name, tuoi_age):
        self.ten_name = ten_name
        self.tuoi_age = tuoi_age

p1 = Nguoi_Person("Hoang Luu","37")
print("Ten ban dau la: ", p1.ten_name)
del p1
print(p1.ten_name)

Kết quả :

name 'p1' is not defined

Sau khi sử dụng lệnh: del p1, đối tượng Nguoi_Person sẽ bị xóa.