Việc sử dụng __ init __ Trong gói Python là gì?
Như chúng ta đã thảo luận "self" đại diện cho cùng một đối tượng hoặc thể hiện của lớp. Nếu bạn thấy, bên trong phương thức "get_area", chúng tôi đã sử dụng "self. độ dài" để lấy giá trị của thuộc tính "độ dài". thuộc tính "độ dài" được liên kết với đối tượng (thể hiện của lớp) tại thời điểm tạo đối tượng. "self" đại diện cho đối tượng bên trong lớp. "self" hoạt động giống như "r" trong câu lệnh "r = Rectangle(160, 120, 2000)". Nếu bạn thấy cấu trúc phương thức "def get_area(self). " chúng tôi đã sử dụng "self" làm tham số trong phương thức bởi vì bất cứ khi nào chúng ta gọi phương thức thì đối tượng (thể hiện của lớp) sẽ tự động chuyển thành đối số đầu tiên cùng với các đối số khác của phương thức. Nếu không có đối số nào khác được cung cấp thì chỉ có "self" được truyền cho phương thức. Đó là lý do chúng ta sử dụng "self" để gọi phương thức bên trong lớp("self. get_area()"). chúng tôi sử dụng đối tượng (thể hiện của lớp) để gọi phương thức bên ngoài định nghĩa lớp ("r. get_area()"). "r" là thể hiện của lớp, khi chúng ta gọi phương thức "r. get_area()" ví dụ "r" được chuyển làm đối số đầu tiên ở vị trí của self
Chúng tôi có một đối tượng 10 tại thời điểm này, nhưng đối tượng 10 này thực sự không có ý nghĩa gì vì nó không có chức năng (nó không lưu trữ bất kỳ dữ liệu hữu ích nào hoặc có bất kỳ phương thức nào) Show
Chúng tôi có thể thêm các thuộc tính vào các đối tượng 10 theo cách thủ công để lưu trữ một số dữ liệu về chúngNhưng làm như vậy sẽ là một chút ngớ ngẩn Sẽ tốt hơn nếu bằng cách nào đó chúng ta có thể gọi lớp này với các đối số để tự động lưu trữ các thuộc tính Phương thức khởi tạoHiện tại, nếu chúng ta cố gắng gọi lớp này bằng các đối số, chúng ta sẽ gặp lỗi
Để chấp nhận các đối số, chúng ta cần định nghĩa một phương thức 13 trong lớp của chúng ta
Đối số đầu tiên trong phương thức 13 của chúng ta sẽ luôn là 3 (giống như hầu hết mọi phương thức khác). Sau đó, chúng ta cần khai báo bất kỳ đối số nào mà chúng ta muốn lớp của mình chấp nhậnĐiều chính mà bạn sẽ luôn thấy trong một phương thức 13, là gán cho các thuộc tínhĐây là lớp 10 mới của chúng tôi
Nếu chúng ta gọi nó như trước đây mà không có bất kỳ đối số nào, chúng ta sẽ thấy lỗi vì lớp này hiện yêu cầu hai đối số, 6 và 7
Chúng ta cần cung cấp cho lớp 10 của mình hai đối số để có được một thể hiện mới của lớp nàyĐối tượng 10 này hiện có thuộc tính 6 và thuộc tính 7Điều đó có nghĩa là phương pháp 13 của chúng tôi được gọi làPython gọi def __init__(self, x, y): self.x = x self.y = y 13 bất cứ khi nào một lớp được gọiBất cứ khi nào bạn gọi một lớp, Python sẽ xây dựng một thể hiện mới của lớp đó, sau đó gọi phương thức 13 của lớp đó, chuyển thể hiện mới được tạo làm đối số đầu tiên ( 3)Không giống như nhiều ngôn ngữ lập trình, 13 không được gọi là "phương thức xây dựng"Phương thức 13 của Python được gọi là phương thức khởi tạo. Phương thức khởi tạo khởi tạo thể hiện lớp mới của chúng ta. Vì vậy, tại thời điểm mà phương thức khởi tạo được gọi là thể hiện của lớp đã được xây dựngBản tóm tắtKhi bạn tạo một lớp mới trong Python, phương thức đầu tiên bạn có thể sẽ tạo là phương thức 13. Phương thức 13 cho phép bạn chấp nhận các đối số cho lớp của mìnhQuan trọng hơn, phương thức 13 cho phép bạn gán các giá trị ban đầu cho các thuộc tính khác nhau trên các cá thể lớp của bạn Đ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 27 28 29
30 31 30 00 01______102 03 04 02 06 07 08
30 90 30 00 93____102 95 04 97 98 99 80 02 82
83 07 85____286 87 88đầu ra 7Hiể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 27 28 29
30 31 30 00 01______102 03 04 02 06 07 08
30 90 30 00 93____102 95 04 97 98 99 80 02 82
298 299 07 85______286 87 304 07 85______1307 87 309 07 85______1312 87
314 315 316đầu ra 0__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 317 318 319
28 301 302 95 30 00 01____102 308 04 97____198 002 87 04 02 006 07 008
28 010 30 00 01____102 308 04 017 04 019 02 021 04 97 98 025 87 04 02 006 07 008
032 07 034 035 87đầu ra 9Vì 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. __ init __ dùng để làm gì trong Python?Phương thức __init__ tương đương với Python của hàm tạo C++ theo cách tiếp cận hướng đối tượng. Hàm __init__ được gọi mỗi khi một đối tượng được tạo từ một lớp. Phương thức __init__ cho phép lớp khởi tạo các thuộc tính của đối tượng và không phục vụ mục đích nào khác . Nó chỉ được sử dụng trong các lớp học.
__ init __ có nghĩa là gì?"__init__" là một phương thức được đặt lại trong các lớp python . Nó được gọi là một hàm tạo trong thuật ngữ hướng đối tượng. Phương thức này được gọi khi một đối tượng được tạo từ một lớp và nó cho phép lớp khởi tạo các thuộc tính của lớp.
__ init __ có cần thiết trong Python không?__init__ là một trong những phương thức dành riêng trong Python. Trong lập trình hướng đối tượng, nó được gọi là hàm tạo. Phương thức __init__ có thể được gọi khi một đối tượng được tạo từ lớp và cần có quyền truy cập để khởi tạo các thuộc tính của lớp
Việc sử dụng tệp __ init __ py trong một gói ngay cả khi nó trống là gì?Mục đích duy nhất của __init__. py là để chỉ ra rằng thư mục chứa tệp này là một gói và để coi thư mục này là gói , đó là lý do tại sao nên để trống nó. |