Trong Python, lệnh class được sử dụng để tạo một lớp mới. Tên của lớp theo ngay sau từ khóa class và được theo sau bởi dấu hai chấm, như sau:
class TenLop: 'Phan documentation string cho lop la tuy y' class_suite
Dưới đây là ví dụ đơn giản về một lớp trong Python:
class Sinhvien: 'Class co so chung cho tat ca sinh vien' svCount = 0 def __init__(self, ten, hocphi): self.ten = ten self.hocphi = hocphi Sinhvien.svCount += 1 def displayCount(self): print "Tong so Sinh vien %d" % Sinhvien.svCount def displaySinhvien(self): print "Ten : ", self.ten, ", Hoc phi: ", self.hocphi
Để tạo các instance của một lớp, bạn gọi lớp này bởi sử dụng tên lớp và truyền vào bất kỳ tham số nào mà phương thức __init__ của nó chấp nhận. Bạn theo dõi ví dụ sau:
"Lenh nay tao doi tuong dau tien cua lop Sinhvien" sv1 = Sinhvien("Hoang", 4000000) "Lenh nay tao doi tuong thu hai cua lop Sinhvien" sv2 = Sinhvien("Huong", 4500000)
Bạn truy cập các thuộc tính của đối tượng bởi sử dụng toán tử dot (dấu chấm) với đối tượng. Biến class sẽ được truy cập bởi sử dụng tên lớp như sau:
sv1.displaySinhvien() sv2.displaySinhvien() print "Tong so Sinh vien %d" % Sinhvien.svCount
Bây giờ đặt tất cả khái niệm cùng với nhau:
class Sinhvien: 'Class co so chung cho tat ca sinh vien' svCount = 0 def __init__(self, ten, hocphi): self.ten = ten self.hocphi = hocphi Sinhvien.svCount += 1 def displayCount(self): print "Tong so Sinh vien %d" % Sinhvien.svCount def displaySinhvien(self): print "Ten : ", self.ten, ", Hoc phi: ", self.hocphi "Lenh nay tao doi tuong dau tien cua lop Sinhvien" sv1 = Sinhvien("Hoang", 4000000) "Lenh nay tao doi tuong thu hai cua lop Sinhvien" sv2 = Sinhvien("Huong", 4500000) sv1.displaySinhvien() sv2.displaySinhvien() print "Tong so Sinh vien %d" % Sinhvien.svCount
Khi code trên được thực thi sẽ cho kết quả:
Ten : Hoang ,Hoc phi: 4000000 Ten : Huong ,Hoc phi: 4500000 Tong so Sinh vien 2
Bạn có thể thêm, xóa, hoặc sửa đổi các thuộc tính của các lớp và đối tượng tại bất cứ thời điểm nào.
sv1.tuoi = 21 # Them mot thuoc tinh 'tuoi'. sv1.tuoi = 20 # Sua doi thuoc tinh 'tuoi'. del sv1.tuoi # Xoa thuoc tinh 'tuoi'.
Thay vì sử dụng các lệnh chính thức để truy cập các thuộc tính, bạn có thể sử dụng các hàm sau:
Ví dụ:
hasattr(sv1, 'tuoi') # Tra ve true neu thuoc tinh 'tuoi' ton tai getattr(sv1, 'tuoi') # Tra ve gia tri cua thuoc tinh 'tuoi' setattr(sv1, 'tuoi', 20) # Thiet lap thuoc tinh 'tuoi' la 20 delattr(sv1, 'tuoi') # Xoa thuoc tinh 'tuoi'
Mỗi lớp Python đều giữ các thuộc tính đã được xây dựng sẵn sau và chúng có thể được truy cập bởi sử dụng toán tử dot (dấu chấm .) như bất kỳ thuộc tính khác:
Với lớp Sinhvien trên, chúng ta sẽ thử truy cập tất cả các thuộc tính này.
class Sinhvien: 'Class co so chung cho tat ca sinh vien' svCount = 0 def __init__(self, ten, hocphi): self.ten = ten self.hocphi = hocphi Sinhvien.svCount += 1 def displayCount(self): print "Tong so Sinh vien %d" % Sinhvien.svCount def displaySinhvien(self): print "Ten : ", self.ten, ", Hoc phi: ", self.hocphi print "Sinhvien.__doc__:", Sinhvien.__doc__ print "Sinhvien.__name__:", Sinhvien.__name__ print "Sinhvien.__module__:", Sinhvien.__module__ print "Sinhvien.__bases__:", Sinhvien.__bases__ print "Sinhvien.__dict__:", Sinhvien.__dict__
Khi code trên được thực thi sẽ cho kết quả:
Sinhvien.__doc__: Class co so chung cho tat ca sinh vien Sinhvien.__name__: Sinhvien Sinhvien.__module__: __main__ Sinhvien.__bases__: () Sinhvien.__dict__: {'__module__': '__main__', 'displayCount':, 'svCount': 2, 'displaySinhvien': , '__doc__': 'Class co so chung cho tat ca sinh vien', '__init__': }
» Tin mới nhất:
» Các tin khác: