Python mặc định __new__
Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về phương thức __new__ của Python và hiểu cách Python sử dụng nó để tạo một đối tượng mới Show Giới thiệu về phương thức __new__ của PythonKhi bạn tạo một thể hiện của một lớp, trước tiên Python gọi phương thức 4 để tạo đối tượng và sau đó gọi phương thức 5 để khởi tạo các thuộc tính của đối tượng 4 là một phương thức tĩnh của lớp 7. Nó có chữ ký sau
Đối số đầu tiên của phương thức 8 là 9 của đối tượng mới mà bạn muốn tạo Các tham số 0 và 1 phải khớp với các tham số của 2 của lớp. Tuy nhiên, phương pháp 4 không sử dụng chúng Phương thức 4 sẽ trả về một đối tượng mới của lớp. Nhưng nó không phải Khi bạn định nghĩa một lớp mới, lớp đó sẽ kế thừa hoàn toàn từ lớp 7. Điều đó có nghĩa là bạn có thể ghi đè phương thức tĩnh của 8 và làm điều gì đó trước và sau khi tạo một thể hiện mới của lớp Để tạo đối tượng của một lớp, bạn gọi phương thức 7 Về mặt kỹ thuật, bạn có thể gọi phương thức 8 để tạo đối tượng theo cách thủ công. Tuy nhiên, bạn cần tự gọi 2 theo cách thủ công sau khi. Python sẽ không tự động gọi phương thức 2 nếu bạn rõ ràng tạo một đối tượng mới bằng cách sử dụng phương thức 8 Ví dụ về phương thức __new__ trong PythonSau đây định nghĩa lớp 92 với thuộc tính 93 và tạo một thể hiện mới của lớp 92
Trong Python, một lớp có thể gọi được. Khi bạn gọi lớp để tạo một đối tượng mới
Python sẽ gọi các phương thức 4 và 2. Nó tương đương với các cuộc gọi phương thức sau 9 Phần sau hiển thị nội dung của đối tượng 97 của đối tượng 98 sau khi gọi phương thức 4 và 2 1 đầu ra 2 Như bạn có thể thấy rõ từ đầu ra, sau khi gọi phương thức 4, 12 trống. Và sau khi gọi phương thức 2, 12 chứa thuộc tính 93 với giá trị ‘ 16 Phần sau đây minh họa trình tự mà Python gọi phương thức 8 và 18 khi bạn tạo một đối tượng mới bằng cách gọi lớp 1 đầu ra 2 Trong ví dụ này, Python gọi phương thức __new__ và phương thức __init__ sau đó Khi sử dụng phương thức __new__Ví dụ sau định nghĩa lớp 19 kế thừa từ kiểu int có sẵn 4 Trong ví dụ này, phương thức 4 của lớp 19 chấp nhận một số nguyên và trả về số bình phương. 22 là một thể hiện của lớp 19 và cũng là một thể hiện của loại dựng sẵn 24 0 Lưu ý rằng bạn không thể thực hiện việc này bằng cách sử dụng phương thức 2 vì phương thức 2 của 24 tích hợp sẵn không có đối số. Đoạn mã sau sẽ dẫn đến lỗi 0 Lỗi 1 Trong thực tế, bạn sử dụng phương thức 4 khi muốn tinh chỉnh đối tượng tại thời điểm khởi tạo Ví dụ: phần sau định nghĩa lớp 92 và sử dụng phương thức 8 để đưa thuộc tính 11 vào đối tượng của Người 2 đầu ra 3 Thông thường, khi bạn ghi đè phương thức 4, bạn không cần xác định phương thức 2 vì mọi thứ bạn có thể làm trong phương thức 2, bạn có thể làm điều đó trong phương thức 4 __ mới __ trong Python là gì?Python __new__() là phương thức khởi tạo kiểm soát việc tạo phiên bản mới . Nó được gọi đầu tiên và nó trả về một thể hiện của lớp mới. Python __init__() là phương thức khởi tạo để thiết lập các thuộc tính (i. e. , trạng thái) của phiên bản mới được tạo. Nó được gọi sau khi tạo và không trả về gì cả, tôi. e. , Không có.
Tại sao nên sử dụng __ mới __ trong Python?Theo tài liệu chính thức của Python, __new__ được sử dụng khi bạn cần kiểm soát việc tạo phiên bản mới trong khi __init__ được sử dụng để kiểm soát .
Sự khác biệt giữa __ khởi tạo __ và __ mới __ là gì?__new__ trả về một thể hiện của lớp. __init__ nhận các thể hiện của lớp được trả về bởi __new__ . Sử dụng __init__ để khởi tạo giá trị.
Có từ khóa mới trong Python không?Python không có từ khóa mới . |