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:
class Myclass:
name = "Hoa"
a = Myclass()
print(a.name)
Để 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:
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).
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.
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).
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()
Ten la: Hoang Luu
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"
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)
Ten ban dau la: Hoang Luu
Ten sau khi thay doi la: Hoang Hong Phong
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
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)
'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'.
Sử dụng từ khóa del để xóa đối tượng p1 :
del p1
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)
name 'p1' is not defined
Sau khi sử dụng lệnh: del p1, đối tượng Nguoi_Person sẽ bị xóa.