Bạn có thể có nhiều __ init __ python không?
Hàm tạo là một loại phương thức (hàm) đặc biệt được sử dụng để khởi tạo thể hiện của lớp. Python xem xét các hàm tạo khác nhau nhưng C ++ và Java khai báo cùng tên với lớp Show
Có hai loại hàm tạo
Để tạo constructor trong python, chúng ta sẽ sử dụng hàm __init__(). Khi lớp được tạo, phương thức này được gọi. Nó lấy từ khóa class Data: pass d = Data() print(type(d)) #5 làm tham số đầu tiên, cho phép truy cập vào các thuộc tính và phương thức của lớp Tạo nhiều hàm tạo trong lớp Python Bạn có thể tạo nhiều hàm tạo trong lớp và có thể tùy chỉnh nó theo các tham số. Các hàm tạo sẽ được chạy dựa trên số lượng tham số khác nhau Công việc của hàm tạo lớp Python là khởi tạo thể hiện của lớp. Python __init__() là hàm khởi tạo cho các lớp trong Python Cú pháp hàm __init__() của PythonCú pháp hàm __init__() là def __init__(self, [arguments])
Ví dụ về hàm tạo lớp PythonHãy xem xét một số ví dụ về hàm tạo trong các tình huống khác nhau 1. Lớp không có hàm tạoChú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 class Data: pass d = Data() print(type(d)) #7 là cơ sở của tất cả các lớp trong Python class Data: pass d = Data() print(type(d)) # Đây là một ví dụ khác để xác nhận rằng hàm tạo của lớp cha được gọi để khởi tạo thể hiện của lớp con class BaseData: def __init__(self, i): print(f'BaseData Constructor with argument {i}') self.id = i class Data(BaseData): pass d = Data(10) print(type(d)) đầu ra BaseData Constructor with argument 10 2. Trình xây dựng đơn giản không có đối sốChúng ta có thể tạo một hàm tạo mà không cần bất kỳ đối số nào. Nó rất hữu ích cho các mục đích ghi nhật ký, chẳng hạn như giữ số lượng các phiên bản của lớp class Data1: count = 0 def __init__(self): print('Data1 Constructor') Data1.count += 1 d1 = Data1() d2 = Data1() print("Data1 Object Count =", Data1.count) đầu ra Data1 Constructor Data1 Constructor Data1 Object Count = 2 3. Trình tạo lớp có đối sốHầu hết thời gian, bạn sẽ tìm thấy hàm tạo với một số đối số. Các đối số này thường được sử dụng để khởi tạo các biến thể hiện class Data2: def __init__(self, i, n): print('Data2 Constructor') self.id = i self.name = n d2 = Data2(10, 'Secret') print(f'Data ID is {d2.id} and Name is {d2.name}') đầu ra ________số 8 4. Trình tạo lớp có tính kế thừaclass Person: def __init__(self, n): print('Person Constructor') self.name = n class Employee(Person): def __init__(self, i, n): print('Employee Constructor') super().__init__(n) # same as Person.__init__(self, n) self.id = i emp = Employee(99, 'Pankaj') print(f'Employee ID is {emp.id} and Name is {emp.name}') đầu ra class Data: pass d = Data() print(type(d)) #0
5. Constructor Chaining với kế thừa đa cấpclass Data: pass d = Data() print(type(d)) #0 đầu ra class Data: pass d = Data() print(type(d)) #1 6. Constructor với nhiều kế thừaChúng ta không thể sử dụng super() để truy cập tất cả các lớp cha trong trường hợp có nhiều kế thừa. Cách tiếp cận tốt hơn là gọi hàm tạo của các lớp cha bằng tên lớp của chúng class Data: pass d = Data() print(type(d)) #2 đầu ra class Data: pass d = Data() print(type(d)) #3 Python không hỗ trợ nhiều hàm tạoPython không hỗ trợ nhiều hàm tạo, không giống như các ngôn ngữ lập trình hướng đối tượng phổ biến khác như Java Bạn có thể có hai init không?Hiểu về bộ chứa init
. it can also have one or more init containers, which are run before the app containers are started.
Init có thể quá tải __ init __ trong Python không?Khái niệm nạp chồng phương thức và nạp chồng hàm tạo có thể thực hiện được trong các ngôn ngữ khác như java và c++. Trong hàm tạo và phương thức python, không thể quá tải .
Một lớp Python có thể có nhiều hơn một hàm tạo không?Một lớp có thể có nhiều hàm tạo gán các trường theo những cách khác nhau. Đôi khi, việc xác định mọi khía cạnh của dữ liệu của một đối tượng bằng cách gán tham số cho các trường là hữu ích, nhưng những lúc khác, có thể chỉ xác định một hoặc một vài khía cạnh.
__ init __ có phải là một phiên bản không?Python gọi __init__ bất cứ khi nào một lớp được gọi
. 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ựng. |