Đ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
Thí 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 Anshul03
Hello, 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 Anshul03
Hello, 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 Anshul1
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2
Hello, 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 Anshul4
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2____06
Hello, 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 Anshul03
A init called B init called0
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul0
A init called B init called3
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2
A init called B init called5
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4
A init called B init called7____98
A init called B init called9
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul80
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2
Hello, 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 Anshul83
Hello, 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____186
Hello, 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 Anshul7
Hiể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 Anshul03
Hello, 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 Anshul03
Hello, 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 Anshul1
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2
Hello, 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 Anshul4
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2____06
Hello, 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 Anshul03
A init called B init called0
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul03
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul0
A init called B init called3
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2
A init called B init called5
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4
A init called B init called7____98
A init called B init called9
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul80
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2
Hello, 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 Anshul029
Hello, 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____186
Hello, 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 Anshul034
Hello, 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____1037
Hello, 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 Anshul039
Hello, 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____1042
Hello, 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 Anshul03
Hello, 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 Anshul1
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul038
_______04____97____98
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 Anshul87
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul4
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2____006
Hello, 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 Anshul03
Hello, 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 Anshul1
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2
Hello, 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 Anshul4
Hello, 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 Anshul4
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul19____02
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul21
_______04____97____98
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul25
Hello, 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 Anshul4
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul2____006
Hello, 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 Anshul32
Hello, 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 Anshul34
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul35
Hello, my name is Nikhil Hello, my name is Abhinav Hello, my name is Anshul87
đầu ra
A init called B init called
Vì 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.