Điều kiện tiên quyết – Lớp Python, Đối tượng, Bản thân Bất cứ khi nào lập trình hướng đối tượng được thực hiện bằng Python, chúng ta hầu như bắt gặp phương thức __init__ trong rất tiếc mà chúng ta thường không hiểu đầy đủ. Bài viết này giải thích khái niệm chính về __init__ nhưng trước khi hiểu về __init__, cần có một số điều kiện tiên quyết
__init__ trong Python là gì?
Trình xây dựng __init__ mặc định trong C++ và Java. Constructor được sử dụng để khởi tạo trạng thái của đối tượng. Nhiệm vụ của constructor là khởi tạo (gán giá trị) cho các thành viên dữ liệu của lớp khi một đối tượng của lớp được tạo. Giống như các phương thức, một hàm tạo cũng chứa một tập hợp các câu lệnh (i. e. hướng dẫn) được thực thi tại thời điểm tạo Đối tượng. Nó được chạy ngay khi một đối tượng của một lớp được khởi tạo. Phương pháp này rất hữu ích để thực hiện bất kỳ khởi tạo nào bạn muốn thực hiện với đối tượng của mình
Ví dụ.
Python3
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul00
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul01 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul02
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul04
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul0 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul1Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul3
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2____06Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul8
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03A init called B init called0
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul0 A init called B init called3Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2A init called B init called5
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4A init called B init called7____98A init called B init called9Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul80Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul82
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul83Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul85____186Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul87
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul88
đầu ra
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7Hiểu mã
Trong ví dụ trên, một người tên Nikhil được tạo. Trong khi tạo một người, “Nikhil” được truyền dưới dạng đối số, đối số này sẽ được truyền cho phương thức __init__ để khởi tạo đối tượng. Từ khóa self đại diện cho thể hiện của một lớp và liên kết các thuộc tính với các đối số đã cho. Tương tự, nhiều đối tượng của lớp Person có thể được tạo bằng cách chuyển các tên khác nhau làm đối số. Dưới đây là ví dụ về init trong python với các tham số
Ví dụ về __init__
Python3
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul00
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul01 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul02
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul04
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul0 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul1Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul3
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2____06Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul8
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03A init called B init called0
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul0 A init called B init called3Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2A init called B init called5
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4A init called B init called7____98A init called B init called9Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul80Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul82
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul028
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul029Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul85____186Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul87
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul034Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul85____1037Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul87
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul039Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul85____1042Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul87
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul044
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul045
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul046
đầu ra
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul__init__ với thừa kế
Kế thừa là khả năng của một lớp kế thừa hoặc kế thừa các thuộc tính từ một số lớp khác. Hãy xem xét ví dụ dưới đây để xem cách __init__ hoạt động trong thừa kế.
Python3
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul047
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul048
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul049
________ 101 ________ 1031 ________ 1032 ________ 95
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul0 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul1Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul038
_______04____97____98Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul02Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul87
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2____006Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul08
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul01 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul10
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul0 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul1Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul038
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul17
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul19____02Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul21
_______04____97____98Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul25Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul87
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2____006Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul08
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul32Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul7 Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul34Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul35Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul87
đầu ra
A init called B init calledVì vậy, hàm tạo của lớp cha được gọi trước. Nhưng trong Python, không bắt buộc hàm tạo của lớp cha sẽ luôn được gọi trước. Thứ tự gọi phương thức __init__ cho lớp cha hoặc lớp con có thể được sửa đổi. Điều này có thể được thực hiện đơn giản bằng cách gọi hàm tạo của lớp cha sau phần thân của hàm tạo của lớp con.