Câu hỏi phỏng vấn Python
Câu hỏi

What are descriptors?

Câu trả lời

Descriptors in Python are a mechanism that allows you to create managed attributes in classes. They are special objects that define how a specific attribute is accessed within the class. The descriptor protocol consists of methods that can be overridden to customize the behavior of accessing, setting, or deleting an attribute. These methods are __get__, __set__, and __delete__, and optionally __set_name__ for Python 3.6 and above.

Descriptors are used under the hood in Python to implement properties, methods, static methods, class methods, and the super() function. They are a powerful feature that enables a high level of code reuse and encapsulation. Descriptors are particularly useful when you need to control the access to an attribute across multiple classes or when you want to encapsulate the internal representation of a property.

There are two types of descriptors: data descriptors and non-data descriptors. Data descriptors implement both the __get__ and __set__ methods, while non-data descriptors only implement the __get__ method. The distinction is important because data descriptors have precedence over instance attributes when accessing an attribute, while non-data descriptors can be overridden by instance attributes.

In practice, descriptors are used for various purposes, such as validating attribute values, implementing computed properties, and automatically managing resources....

junior

junior

Gợi ý câu hỏi phỏng vấn

senior

What is the difference between old style and new style classes in Python?

middle

What does the Python nonlocal statement do (in Python 3.0 and later)?

senior

What is the purpose of the single underscore _ variable in Python?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào