Python 3 __new__
Ngày đăng:
08/01/2023
Trả lời:
0
Lượt xem:
162
Trong Python, phương thức >>> class Employee(object): .. .. def __init__(self, name, salary): .. self.name = name .. self.salary = salary .. .. def __new__(cls, name, salary): .. if 0 < salary < 10000: .. return object.__new__(cls) .. else: .. return None .. .. def __str__(self): .. return '{0}({1})'.format(self.__class__.__name__, self.__dict__)8 tương tự như phương thức >>> class Employee(object): .. .. def __init__(self, name, salary): .. self.name = name .. self.salary = salary .. .. def __new__(cls, name, salary): .. if 0 < salary < 10000: .. return object.__new__(cls) .. else: .. return None .. .. def __str__(self): .. return '{0}({1})'.format(self.__class__.__name__, self.__dict__)9, nhưng nếu cả hai đều tồn tại thì phương thức >>> class Employee(object): .. .. def __init__(self, name, salary): .. self.name = name .. self.salary = salary .. .. def __new__(cls, name, salary): .. if 0 < salary < 10000: .. return object.__new__(cls) .. else: .. return None .. .. def __str__(self): .. return '{0}({1})'.format(self.__class__.__name__, self.__dict__)8 sẽ thực thi trước. Trong đối tượng lớp cơ sở, >>> class Employee(object): .. .. def __init__(self, name, salary): .. self.name = name .. self.salary = salary .. .. def __new__(cls, name, salary): .. if 0 < salary < 10000: .. return object.__new__(cls) .. else: .. return None .. .. def __str__(self): .. return '{0}({1})'.format(self.__class__.__name__, self.__dict__)8 được định nghĩa là một phương thức tĩnh và cần truyền tham số >>> class Employee(object): .. .. def __init__(self, name, salary): .. self.name = name .. self.salary = salary .. .. def __new__(cls, name, salary): .. if 0 < salary < 10000: .. return object.__new__(cls) .. else: .. return None .. .. def __str__(self): .. return '{0}({1})'.format(self.__class__.__name__, self.__dict__)0. Tham số >>> class Employee(object): .. .. def __init__(self, name, salary): .. self.name = name .. self.salary = salary .. .. def __new__(cls, name, salary): .. if 0 < salary < 10000: .. return object.__new__(cls) .. else: .. return None .. .. def __str__(self): .. return '{0}({1})'.format(self.__class__.__name__, self.__dict__)0 đại diện cho lớp cần được khởi tạo và tham số này được trình phân tích cú pháp python cung cấp tự động tại thời điểm khởi tạo Show
1. Tổng quan về Phương thức __init__ của Python & Tổng quan về Phương thức __new__
2. Ví dụ về cách sử dụng phương thức __new__
3. Python 3 và python 2 sử dụng _new_ khác nhau3. 1 Sử dụng phương thức __new__ trong python 2
3. 2 Sử dụng phương thức __new__ trong python 3
4. Trả lời câu hỏi4. 1 Tại sao phương thức __new__() chạy trước và phương thức __init__() chạy sau khi tạo đối tượng python?
__ 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ị.
Làm thế nào để __ thêm __ hoạt động với Python?__add__ được dùng để thêm các thuộc tính của thể hiện lớp . Ví dụ: giả sử object1 là một thể hiện của lớp A và object2 là một thể hiện của lớp B và cả hai lớp này đều có một thuộc tính gọi là 'a', chứa một số nguyên. |