Cấp bậc tác giả:

TRAINING

[Tự học Python]Lập Trình Hướng Đối Tượng

Được viết bởi webmaster ngày 21/11/2016 lúc 04:48 PM
Lập trình hướng đối tượng là một kỹ thuật hỗ trợ, cho phép lập trình viên trực tiếp làm việc với các đối tượng mà họ định nghĩa lên. Giúp tăng năng suất, đơn giản hoá độ phức tạp khi bảo trì cũng như mở rộng phần mềm. Hiện nay có khá nhiều ngôn ngữ lập trình theo hướng đối tượng như C++, Java, PHP,... và còn cả Python
  • 0
  • 7843

[Tự học Python]Lập Trình Hướng Đối Tượng

Một vài thuật ngữ hướng đối tượng
  • Lớp (Class): Là một kiểu dữ liệu do người dùng định nghĩa, tập hợp nhiều thuộc tính đặc trưng cho mọi đối tượng được tạo ra từ lớp đó. Các thuộc tính là các biến thành viên hoặc phương thức.
  • Đối tượng (Object): Một thể hiện cụ thể của cấu trúc dữ liệu được định nghĩa trong lớp. Một đối tượng bao gồm cả các biến thành viên và phương thức.
  • Biến thành viên (Data member): Biến được định nghĩa trong lớp hoặc trong đối tượng.
  • Phương thức (Method): Hàm được định nghĩa trong lớp nhằm thực hiện một công việc nào đó.
  • Kế thừa (Inheritace): Một tính chất của các ngôn ngữ lập trình hướng đối tượng cho phép các lớp kế thừa, thừa hưởng các đặch trưng của lớp được kế thừa.

Định nghĩa lớp

Cú pháp

class ClassName:
   statement_1
   .
   .
   statement_n

Ví dụ

#!/usr/bin/python
class Animal:
def __init__(self, genus, age):
self.genus = genus
self.age = age
def foot(self):
print ("Gobble")
def say(self):
pass
Trong đó:

Dòng 3: Phương thức __init__ có chức năng như một constructor trong C++, phương thức này sẽ tự động được gọi khi 1 đối tượng được tạo ra. Phương thức này có thể có hoặc không các tham số, tham số đầu tiên bắt buộc phải là self.
 Dòng 4, 5: Các thuộc tính trong lớp bắt buộc phải được truy xuất thông qua tham số self, các thuộc tính sẽ được tạo ra khi được gán lần đầu tiên.
Dòng 6, 8: Khai báo một member function. Tham số đầu tiên trong member function luôn self.
Lưu ý

Không thể khai báo 2 phương thức __init__ trong cùng 1 class.
Có thể hiểu self như là con trỏ this trong C++, nó dùng để trỏ đến chính đối tượng đang được thao tác.
Tạo đối tượng

Xét ví dụ sau:

dog = Animal('Dog', 10)
Ví dụ trên là cách để tạo một đối tượng từ một class, các tham số truyền vào khi tạo đối tượng sẽ tương ứng với các tham số trong phương thức __init__ của lớp đó.

Truy cập các thuộc tính của đối tượng

Bạn có thể truy cập các thuộc tính của đối tượng nào đó thông qua toán tử chấm ".".

Ví dụ

dog.genus
dog.eat()
Bạn cũng có thể thêm mới, hoặc cập nhật lại một số thuộc tính cho đối tượng sau khi đã khởi tạo nó.

Ví dụ

dog.name = "Rex"
dog.age = 11
Ngoài các cách thông thường để truy cập các thuộc tính, Python còn cho phép truy cập thông qua một số hàm có sẵn:

   Hàm            Mô tả
getattr(obj, name[, default])                      Lấy một thuộc tính nào đó của đối tượng, nếu đối tượng này không có thuộc tính đó thì giá trị trả về là default. Khi default không được truyền vào thì giá trị trả về là None.
hasattr(obj, name)Kiểm tra một thuộc tính nào đó có tồn tại trong đối tượng này hay không, nếu có thì trả về True và ngược lại.
setattr(obj,name,value)Gán giá trị value cho một thuộc tính trong đối tượng.
delattr(obj, name)Xoá thuộc tính trong đối tượng.

Ví dụ
class Animal:
def __init__(self, genus, age):
self.genus = genus
self.age = age
def foot(self):
print ("Gobble")
def say(self):
pass
dog = Animal('Dog', 10)

if(not(hasattr(dog, 'name'))):
setattr(dog, 'name', 'Rex')
print ("Name: ", dog.name)
print ("Age: ", dog.age)

Nguồn bài viết: Sưu tầm

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML