Hướng dẫn dùng python __call__ python
Python là một ngôn ngữ lập trình hướng đối tượng. Không giống như lập trình hướng thủ tục nhấn mạnh vào các hàm, lập trình hướng đối tượng tập trung làm việc trên các đối tượng. Đối tượng (Object) chỉ đơn giản là một tập hợp các dữ liệu (các biến) và các phương thức (các hàm) hoạt động trên các dữ liệu đó. Và, lớp (class) là một kế hoạch chi tiết cho đối tượng. Chúng ta có thể nghĩ về class như một bản phác thảo (nguyên mẫu) của một ngôi nhà. Nó chứa tất cả các chi tiết về sàn nhà, cửa ra vào, cửa sổ,... Dựa trên những mô tả này, chúng ta sẽ xây dựng những ngôi nhà. Vậy nhà ở đây chính là đối tượng. Vì nhiều ngôi nhà có thể được làm từ một mô tả nên chúng ta có thể tạo ra nhiều vật thể từ một lớp. Một đối tượng cũng được gọi là một thể hiện (instance) của một lớp và quá trình tạo đối tượng này được gọi là instantiation. Xem thêm: Tìm hiểu về Class, Object và Instance trong lập trình hướng đối tượng Khai báo ClassGiống như khai báo các hàm bắt đầu bằng một từ khóa là def thì khai báo lớp trong Python sử dụng từ khóa class. Dòng kí tự đầu tiên được gọi là docstring - một mô tả ngắn gọn về lớp. Docstring này không bắt buộc nhưng khuyến khích sử dụng.
Đây là cách khai báo class đơn giản. Class tạo ra một local namespace mới trở thành nơi để các thuộc tính của nó được khai báo. Thuộc tính có thể là hàm hoặc dữ liệu. Ngoài ra còn có các thuộc tính đặc biệt bắt đầu với dấu gạch dưới kép (__). Ví dụ: __doc__ sẽ trả về chuỗi docstring mô tả của lớp đó. Ngay khi khai báo một lớp, môt đối tượng trong lớp mới sẽ được tạo ra với cùng một tên. Đối tượng lớp này cho phép chúng ta truy cập các thuộc tính khác nhau cũng như để khởi tạo các đối tượng mới của lớp đó.
Sau khi chạy chương trình, kết quả được trả về là:
Tạo đối tượng trong PythonNhư đã nói ở các bài học trước, đối tượng trong class có thể được sử dụng để truy cập các thuộc tính khác nhau và tạo các instance mới của lớp đó. Thủ tục để tạo một đối tượng tương tự như cách chúng ta gọi hàm.
Lệnh này đã tạo ra một đối tượng mới có tên là ob. Một ví dụ kĩ hơn về tạo đối tượng bao gồm cả các thuộc tính, phương thức:
Bạn có thể thấy rằng khi định nghĩa hàm trong class, ta có parameter là self, nhưng khi gọi hàm obj.func() không cần parameter, vẫn không gặp lỗi. Bởi vì, bất cứ khi nào, object gọi các phương thức, object sẽ tự pass qua parameter đầu tiên. Nghĩa là obj.func() tương đương với MyClass.func(obj) Constructor trong PythonHàm trong Class được bắt đầu với dấu gạch dưới kép (__) là các hàm đặc biệt, mang các ý nghĩa đặc biệt. Một trong đó là hàm __init__(). Hàm này được gọi bất cứ khi nào khởi tạo một đối tượng, một biến mới trong class và được gọi là constructor trong lập trình hướng đối tượng.
Trong ví dụ trên, chúng ta khai báo một lớp mới để biểu diễn các số phức. Nó có hai hàm, __init __() để khởi tạo các biến (mặc định là 0) và getData() để hiển thị đúng số. Lưu ý rằng các thuộc tính thêm vào của đối tượng có thể được tạo ra một cách nhanh chóng, như ở ví dụ trên là ta đã tạo một thuộc tính mới ‘new’ cho đối tượng c2 và có thể gọi ra ngay lập tức. Tuy nhiên thuộc tính mới này sẽ không áp dụng với các đối tượng đã khai báo trước như c1. Xóa bỏ thuộc tính và đối tượngThuộc tính của đối tượng có thể bị xóa bằng lệnh del.
Thậm chí bạn có thể xóa chính đối tượng đó bằng cách sử dụng câu lệnh del.
Sau khi bị xóa, object vẫn tồn tại trên bộ nhớ, nhưng sau đó phương thức destruction của Python (hay còn gọi là garbage collection) sẽ loại bỏ hoàn toàn các dữ liệu này trên bộ nhớ. Bài viết hôm nay đã cung cấp cho bạn các kiến thức cơ bản về Class và Object rồi đấy. Để tiếp tục chủ đề về Lập trình hướng đối tượng trong Python, bài sau Quantrimang sẽ cùng bạn tìm hiểu về Kế thừa và Đa kế thừa. Mời bạn đọc theo dõi.
Thứ Hai, 07/11/2022 09:54 4,8 ★ 12 👨 55.395 #Python 0 Bình luận Sắp xếp theo Xóa Đăng nhập để Gửi Bạn nên đọc
Python
Python 3
Giới thiệu | Điều khoản | Bảo mật | Hướng dẫn | Ứng dụng | Liên hệ | Quảng cáo | Facebook | Youtube | DMCA Giấy phép số 362/GP-BTTTT. Bộ Thông tin và Truyền thông cấp ngày 30/06/2016. Cơ quan chủ quản: CÔNG TY CỔ PHẦN MẠNG TRỰC TUYẾN META. Địa chỉ: 56 Duy Tân, Dịch Vọng Hậu, Cầu Giấy, Hà Nội. Điện thoại: 024 2242 6188. Email: [email protected]. Chịu trách nhiệm nội dung: Lê Ngọc Lam. Bản quyền © 2003-2023 QuanTriMang.com. Giữ toàn quyền. Không được sao chép hoặc sử dụng hoặc phát hành lại bất kỳ nội dung nào thuộc QuanTriMang.com khi chưa được phép. |