Python truyền đối số cho hàm tạo của lớp cơ sở
Một cách bạn có thể làm điều này là tạo một hàm tạo mẫu biến đổi trong lớp dẫn xuất để chuyển tất cả các đối số của nó cho lớp cơ sở. Sau đó, bạn có thể làm bất cứ thứ gì bổ sung mà bạn muốn trong phần thân của hàm tạo đó. Điều đó sẽ giống như Show
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 ________số 8 đầu ra Data2 Constructor Data ID is 10 and Name is Secret 4. Trình tạo lớp có tính kế thừadef __init__(self, [arguments])0 đầu ra def __init__(self, [arguments])1
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 Chúng ta có thể truyền tham số cho hàm tạo của lớp cơ sở thông qua dẫn xuất không?Truyền tham số cho Base-ClassConstructors
. use an expanded form of the derived class's constructor declaration that passes along arguments to one or more base-class constructors.
Chúng ta có thể truyền tham số cho hàm tạo không?Bạn có thể sử dụng bất kỳ loại dữ liệu nào cho tham số của phương thức hoặc hàm tạo . Điều này bao gồm các kiểu dữ liệu nguyên thủy, chẳng hạn như double, float và số nguyên, như bạn đã thấy trong phương thức computePayment và các kiểu dữ liệu tham chiếu, chẳng hạn như đối tượng và mảng.
Chúng ta có thể truyền đối số cho một lớp trong Python không?vâng, bạn có thể vượt qua các lớp hoặc chức năng hoặc thậm chí các mô-đun .
Bạn có thể truyền tham số cho hàm tạo của lớp cơ sở thông qua hàm tạo của lớp dẫn xuất hoặc lớp dẫn xuất không?6. Chúng ta có thể truyền tham số cho hàm tạo của lớp cơ sở thông qua hàm tạo của lớp dẫn xuất hoặc lớp dẫn xuất không? . Có, chúng ta truyền tham số cho hàm tạo của lớp cơ sở thông qua hàm tạo của lớp dẫn xuất hoặc lớp dẫn xuất. |