Có cần thiết phải xác định init trong python không?
Có hai phương thức tham gia trong quá trình khởi tạo lớp, đó là; . Show
Tất cả các lớp đều là lớp con của lớp Đối tượng trong Python, và lớp Đối tượng khai báo các phương thức “dunder” có thể bị ghi đè, bởi ảo của X là lớp con mặc định của lớp đối tượng, điều đó có nghĩa là nó đã có một “mặc định” . Các phương pháp "dunder" vẫn phải nằm trong giới hạn của các quy ước mà chúng được sử dụng. Thứ nhất, chức năng “init” không được phép trả về bất cứ thứ gì. Hàm tạo của một lớp trong Python được định nghĩa bằng phương thức __init__. Python __init__ là một phương thức dành riêng trong Python hoạt động giống như bất kỳ hàm thành viên nào khác của lớp, ngoại trừ các câu lệnh được viết theo định nghĩa của nó được sử dụng để khởi tạo các thành viên dữ liệu của một lớp trong Python, i. e. về cơ bản nó chứa các câu lệnh gán. Phương thức này được gọi tự động tại thời điểm khởi tạo lớp hoặc tạo đối tượng. Trong trường hợp kế thừa, lớp con kế thừa phương thức __init__ của lớp cơ sở cùng với các thành viên lớp có thể truy cập khác. Do đó, đối tượng của lớp cơ sở tự động gọi hàm tạo python __init__ của lớp cơ sở tại thời điểm tạo nó vì nó được gọi bởi hàm tạo __init__ của lớp con. Phương thức __init__() hoạt động như thế nào?Phương thức __init__ của python được khai báo trong một lớp và được sử dụng để khởi tạo các thuộc tính của một đối tượng ngay khi đối tượng được hình thành. Trong khi đưa ra định nghĩa cho phương thức __init__(self), một tham số mặc định, có tên là 'self' luôn được truyền trong đối số của nó. Bản thân này đại diện cho đối tượng của chính lớp đó. Giống như trong bất kỳ phương thức nào khác của một lớp, trong trường hợp __init__, 'self' cũng được sử dụng làm biến đối tượng giả để gán giá trị cho các thành viên dữ liệu của một đối tượng. Phương thức __init__ thường được gọi là dấu gạch dưới kép init hoặc dấu gạch dưới init vì nó có hai dấu gạch dưới ở mỗi bên tên của nó. Các dấu gạch dưới kép này ở cả hai bên của init ngụ ý rằng phương thức này được gọi và sử dụng nội bộ trong Python mà không bắt buộc phải được gọi rõ ràng bởi đối tượng. Phương thức __init__ của python này có thể có hoặc không nhận đối số để khởi tạo đối tượng. Bạn cũng có thể chuyển các đối số mặc định trong tham số của nó. Tuy nhiên, mặc dù không có khái niệm về Quá tải hàm tạo trong Python, người ta vẫn có thể đạt được tính đa hình trong trường hợp hàm tạo trong Python trên cơ sở đối số của nó cũng đọc. Đặt trong Python – Cách tạo một bộ trong Python? Bắt đầu bằng Python. Cú pháp và ví dụChúng ta có thể khai báo một phương thức __init__ bên trong một lớp trong Python bằng cú pháp sau class class_name(): def __init__(self): # Required initialisation for data members # Class methods … … Hãy lấy một ví dụ về một lớp có tên là Giáo viên trong Python và hiểu rõ hơn về hoạt động của phương thức __init__() thông qua nó.
Bây giờ, đối với các tình huống mà bạn được yêu cầu đạt được tính đa hình thông qua phương thức __init__(), bạn có thể sử dụng cú pháp sau class class_name(): def __init__(self, *args): Condition 1 for *args: # Required initialisation for data members Condition 2 for *args: # Required initialisation for data members ……… ……… # Class methods … … Trong trường hợp này, loại đối số được truyền thay cho *args quyết định loại khởi tạo nào phải được tuân theo. Hãy xem ví dụ được đưa ra dưới đây để hiểu rõ hơn về điều này.
Các loại Trình tạo __init__Chủ yếu có ba loại hàm tạo __init__ trong Python
1. Trình tạo __init__ mặc địnhHàm tạo __init__ mặc định trong Python là hàm tạo không chấp nhận bất kỳ tham số nào, ngoại trừ tham số ‘self’. 'Bản thân' là một đối tượng tham chiếu cho lớp đó. Cú pháp để xác định hàm tạo __init__ mặc định như sau class class_name(): def __init__(self): # Constructor statements # other class methods … … Cú pháp tạo một đối tượng cho một lớp với hàm tạo __init__ mặc định như sau Object_name = class_name() Thí dụ
2. Trình xây dựng __init__ được tham số hóaKhi chúng ta muốn truyền các đối số trong hàm tạo của một lớp, chúng ta sử dụng phương thức __init__ được tham số hóa. Nó chấp nhận một hoặc nhiều hơn một đối số khác với bản thân. Cú pháp theo sau khi xác định hàm tạo __init__ được tham số hóa đã được đưa ra bên dưới ________số 8 Chúng tôi khai báo một thể hiện cho một lớp với hàm tạo được tham số hóa bằng cú pháp sau Object_name = class_name(arg1, arg2, arg3,…) Thí dụclass class_name(): def __init__(self): # Required initialisation for data members # Class methods … …0 3. Phương thức __init__ với tham số mặc địnhNhư bạn có thể đã biết, chúng ta có thể truyền các đối số mặc định cho hàm thành viên hoặc hàm tạo, có thể là bất kỳ ngôn ngữ lập trình phổ biến nào. Theo cách tương tự, Python cũng cho phép chúng ta định nghĩa một phương thức __init__ với các tham số mặc định bên trong một lớp. Chúng tôi sử dụng cú pháp sau để truyền đối số mặc định trong phương thức __init__ trong một lớp 0Bây giờ, hãy xem qua ví dụ sau để hiểu cách thức hoạt động của phương thức __init__ với các tham số mặc định 1Sử dụng Python __init__Như đã thảo luận trước đó trong blog này và đã thấy từ các ví dụ trước, phương thức __init__ được sử dụng để khởi tạo các thuộc tính của một đối tượng cho một lớp. Chúng tôi cũng đã hiểu làm thế nào có thể đạt được quá tải hàm tạo bằng phương pháp này. Bây giờ, hãy xem phương thức __init__ này hoạt động như thế nào trong trường hợp kế thừa. Tính kế thừa cho phép lớp con kế thừa phương thức __init__() của lớp cha cùng với các thành viên dữ liệu khác và các hàm thành viên của lớp đó. Phương thức __init__ của lớp cha hoặc lớp cơ sở được gọi bên trong phương thức __init__ của lớp con hoặc lớp con. Trong trường hợp lớp cha yêu cầu một đối số, giá trị tham số phải được truyền trong phương thức __init__ của lớp con cũng như tại thời điểm tạo đối tượng cho lớp con. 2Từ đầu ra ở trên, chúng ta có thể theo dõi thứ tự mà các hàm tạo __init__ đã được gọi và thực thi. Đối tượng 't' gọi hàm tạo của lớp Giáo viên, hàm này chuyển quyền điều khiển của chương trình cho hàm tạo của lớp Người. Khi __init__ của Person kết thúc quá trình thực thi, điều khiển sẽ quay trở lại phương thức khởi tạo của lớp Teacher và kết thúc quá trình thực thi của nó. Sự kết luậnVì vậy, tóm lại, __init__ là một phương thức dành riêng cho các lớp trong Python về cơ bản hoạt động như các hàm tạo. Nói cách khác, phương thức này trong lớp Python được sử dụng để khởi tạo các thuộc tính của một đối tượng. Nó được gọi tự động tại thời điểm tạo cá thể cho một lớp. Hàm tạo __init__ này được gọi nhiều lần khi các thể hiện được tạo cho một lớp. Chúng ta có thể sử dụng bất kỳ loại nào trong ba loại hàm tạo __init__ – mặc định, được tham số hóa, __init__ với tham số mặc định – tùy theo nhu cầu của mô-đun lập trình của chúng ta. 'Bản thân' là một tham số bắt buộc đối với bất kỳ hàm thành viên nào của một lớp, bao gồm cả phương thức __init__, vì nó là một tham chiếu đến thể hiện của lớp được tạo. Mặc dù Python không hỗ trợ nạp chồng hàm tạo, nhưng khái niệm nạp chồng hàm tạo có thể được triển khai bằng cách sử dụng *args được sử dụng để truyền số lượng đối số khác nhau cho các đối tượng khác nhau của một lớp. Hơn nữa, chúng ta có thể sử dụng các câu lệnh if-else để khởi tạo các thuộc tính theo các loại đối số khác nhau trong hàm tạo __init__. Để biết thêm về Lớp và Đối tượng trong Python, bạn có thể xem blog này Chúng ta cũng đã thấy phương thức __init__ của một lớp hoạt động như thế nào với tính kế thừa. Chúng ta có thể dễ dàng gọi phương thức __init__ của lớp cơ sở bên trong phương thức __init__ của lớp con. Khi một đối tượng cho lớp con được tạo, phương thức __init__ của lớp con được gọi, phương thức này sẽ gọi tiếp phương thức __init__ của lớp cơ sở __ 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
Tại sao Python cần init?__init__. py cho phép trình thông dịch Python biết rằng thư mục chứa mã cho mô-đun Python . Một __init__. tệp py có thể để trống. Nếu không có, bạn không thể nhập các mô-đun từ thư mục khác vào dự án của mình.
Chúng ta có thể tạo lớp mà không cần init trong Python không?Chúng ta có thể tạo một lớp mà không cần bất kỳ định nghĩa hàm tạo nào . Trong trường hợp này, hàm tạo của lớp cha được gọi để khởi tạo thể hiện của lớp. Lớp đối tượng là cơ sở của tất cả các lớp trong Python.
Bạn có thể định nghĩa một lớp mà không cần init không?Đã trả lời gốc. Điều gì xảy ra nếu bạn định nghĩa một lớp python không có hàm __init__? . Lớp của bạn sẽ kế thừa phương thức __ init__ của cha nó. định nghĩa), lớp con sẽ được khởi tạo mà không có bất kỳ tham số nào. Nothing unintuitive happens. Your class will inherit the __ init__ method of its parent. definition), the child class will be initialized without any parameters. |