Python 描述符教程

描述符是 Python 中非常强大和有趣的一个特性,它允许你扩展内置类型的属性和行为。下面是一个简单的 Python 描述符教程。

基础概念

描述符是一个具有 __get__, __set__, 和 __delete__ 方法的对象。这些方法分别对应于属性的获取、设置和删除操作。

例子

以下是一个简单的描述符例子:

class Property:
    def __init__(self, name):
        self.name = name

    def __get__(self, instance, owner):
        return f"{owner.__class__.__name__}.{self.name}"

    def __set__(self, instance, value):
        setattr(instance, self.name, value)

class MyClass:
    name = Property('name')

    def __init__(self, name):
        self._name = name

my_obj = MyClass('Hello')
print(my_obj.name)  # 输出: MyClass.name
my_obj.name = 'World'
print(my_obj._name)  # 输出: World

在上面的例子中,Property 类是一个描述符,它定义了属性的获取和设置行为。

使用描述符

要使用描述符,你需要将其赋值给类的属性。在上面的例子中,我们将 Property 类的实例赋值给了 MyClass 类的 name 属性。

扩展阅读

想要更深入地了解描述符,可以阅读官方文档中的描述符一节

Python