Giáo trình Python - Bài 10: Lập trình hướng đối tượng trong Python

pdf 46 trang Kim Kim 13/03/2026 100
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Python - Bài 10: Lập trình hướng đối tượng trong Python", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_python_bai_10_lap_trinh_huong_doi_tuong_trong_pyt.pdf

Nội dung text: Giáo trình Python - Bài 10: Lập trình hướng đối tượng trong Python

  1. BÀI 10: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG PYTHON
  2. SỬ DỤNG MODULE
  3. LỆNH IMPORT § Sử dụng các lớp và hàm được định nghĩa trong một file khác § Một module Python là một file có cùng tên (với phần mở rộng .py) § Giống lệnh import trong Java và include trong C++ § Có 3 dạng câu lệnh import: import somefile Có gì khác nhau giữa from somefile import * 3 dạng câu lệnh này??? from somefile import className
  4. LỆNH IMPORT import somefile § Nhập mọi thứ có trong file somefile.py § Để truy cập tới một thành phần nào đó trong file, phải thêm đoạn lệnh “somefile.” vào trước tên của thành phần đó. § Ví dụ: somefile.className.method(“abc”) somefile.myFunction(34)
  5. LỆNH FROM IMPORT * from somefile import * § Nhập mọi thứ có trong file somefile.py § Để truy cập tới một thành phần trong module, chỉ cần sử dụng tên của thành phần đó. Tất cả các thành phần trong module đều đã có trong không gian tên (namespace) hiện tại. § Lưu ý: Sử dụng lệnh import này có thể xóa mất các hàm hoặc biến đã tồn tại. className.method(“abc”) myFunction(34)
  6. LỆNH FROM IMPORT from somefile import className § Chỉ có lớp className trong file somefile.py được nhập vào chương trình. § Sau khi nhập lớp className, ta chỉ việc sử dụng các thành phần của lớp, mà không cần tên module đứng trước. Các thành phần của lớp className đã có trong không gian tên của chương trình § Lưu ý: Có thành phần có cùng tên đã tồn tại trong không gian tên sẽ bị ghi đè className.method(“abc”)ç imported myFunction(34) ç Not imported
  7. ĐƯỜNG DẪN ĐẾN FILE CHỨA MODULE § Python sẽ tìm kiếm file chứa các module ở đâu? § Chính là thư mục: sys.path, trong đó path là một biến có tên là path trong module sys và nó có thể có giá trị khác nhau tùy máy tính >>> import sys >>> sys.path ['', '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site- packages/setuptools-0.6c5-py2.5.egg’, ] § Để thêm một đường dẫn vào danh sách có sẵn của path, ta sử dụng câu lệnh append. sys.path.append(‘/my/new/path’)
  8. ĐỊNH NGHĨA LỚP
  9. MỌI THỨ ĐỀU LÀ ĐỐI TƯỢNG TRONG PYTHON § Mọi thứ trong Python đều là đối tượng • Ví dụ: “hello”.upper() list3.append(‘a’) dict2.keys() § Lời gọi phương thức tương tự như trong Java hay C++ § Các lớp đối tượng mới có thể được tạo ra một cách dễ dàng § Thực tế, việc lập trình trong Python được thực hiện theo phương pháp hướng đối tượng.
  10. ĐỊNH NGHĨA LỚP § Một lớp (class) là một kiểu dữ liệu đặc biệt định nghĩa cách xây dựng một loại đối tượng nào đó. § Một lớp chứa các thành phần dữ liệu mà tất cả các đối tượng của lớp đều có § Một bản thể (Instances) của lớp là các đối tượng được tạo ra theo định nghĩa lớp đã viết trước đó. Sau này gọi chung là đối tượng. § Python không sử dụng định nghĩa giao diện lớp riêng như các ngôn ngữ khác mà đơn giản chỉ là định nghĩa lớp và sử dụng nó.
  11. PHƯƠNG THỨC CỦA LỚP § Phương thức của lớp được định nghĩa ngay trong định nghĩa lớp § Tất cả các phương thức đều phải có tham số đầu tiên là self chỉ chính đối tượng gọi phương thức (giống con trỏ this trong C++) § Hầu hết các lớp đều phải có một phương thức đặc biệt gọi là __init__ để khởi tạo đối tượng (giống các constructor trong C++)
  12. VÍ DỤ 10-1 class student: “““A class representing a student ””” def __init__(self,n,a): self.full_name = n self.age = a def get_age(self): return self.age
  13. TẠO VÀ XÓA ĐỐI TƯỢNG
  14. TẠO ĐỐI TƯỢNG § Để tạo đối tượng, chỉ cần sử dụng tên lớp theo sau bởi cặp dấu () và gán giá trị cho một biến nào đó § Phương thức __init__ hoạt động như hàm tạo của một lớp, thực hiện các thao tác khởi tạo giá trị cho các thuộc tính của lớp. § Các tham số truyền vào qua các tham số của phương thức __init__() § Vì vậy, phương thức __init__ của lớp Student trong Ví dụ 10.1 được truyền hai tham số là “Bob” và 21 và đối tượng được tạo ra sẽ gán cho biến b: b = student(“Bob”, 21)
  15. HÀM TẠO: __INIT__ § Hàm tạo __init__ có thể có tham số hoặc không. Số lượng tham số không hạn chế. § Giống như các hàm và phương thức khác, các tham số có thể được định nghĩa với các giá trị mặc định. Do đó, khi gọi hàm tạo có thể truyền tham số hoặc không. § Lưu ý: Tham số đầu tiên của hàm tạo luôn luôn là self
  16. SELF § Là tham số đầu tiên của mọi phương thức của lớp, tham chiếu đến đối tượng đang gọi phương thức. § Tên của tham số được quy ước là self , tương tự như từ khóa this trong C++ § Trong hàm __init__, self chỉ đối tượng đang được tạo ra
  17. SELF § Mặc dù các hàm buộc phải có tham số đầu tiên là self nhưng khi gọi hàm thì không cần truyền tham số self § Python sẽ tự động truyền tham số này Định nghĩa phương thức: Gọi phương thức: (đoạn mã này được viết bên trong định nghĩa lớp) def set_age(self, num): >>> x.set_age(23) self.age = num
  18. XÓA ĐỐI TƯỢNG § Khi hoàn thành công việc với một đối tượng, chúng ta không cần phải dùng các lệnh xóa và giải phóng bộ nhớ của đối tượng § Python sẽ thực hiện việc này một cách tự động § Python sẽ tự động phát hiện khi các tham chiếu đến vùng nhớ của đối tượng hết phạm vi hoạt động. Khi đó, bộ nhớ sẽ tự động được giải phóng § Không có hàm hủy cho lớp trong Python
  19. TRUY CẬP ĐẾN THUỘC TÍNH VÀ PHƯƠNG THỨC
  20. VÍ DỤ 10.1 class student: “““A class representing a student ””” def __init__(self,n,a): self.full_name = n self.age = a def get_age(self): return self.age