最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

python描述符有什么作用

来源:动视网 责编:小采 时间:2020-11-27 14:09:51
文档

python描述符有什么作用

python描述符有什么作用:本文主要介绍描述符的定义,个人的一些理解。希望看完这篇文章后,你对描述符有了更清晰的认识。什么是描述符官方的定义:描述符是一种具有捆绑行为的对象属性。访问(获取、设置和删除)它的属性时,实际是调用特殊的方法(_get_(),_set_(),_dele
推荐度:
导读python描述符有什么作用:本文主要介绍描述符的定义,个人的一些理解。希望看完这篇文章后,你对描述符有了更清晰的认识。什么是描述符官方的定义:描述符是一种具有捆绑行为的对象属性。访问(获取、设置和删除)它的属性时,实际是调用特殊的方法(_get_(),_set_(),_dele
 本文主要介绍描述符的定义,个人的一些理解。希望看完这篇文章后,你对描述符有了更清晰的认识。

什么是描述符

官方的定义:描述符是一种具有“捆绑行为”的对象属性。访问(获取、设置和删除)它的属性时,实际是调用特殊的方法(_get_(),_set_(),_delete_())。也就是说,如果一个对象定义了这三种方法的任何一种,它就是一个描述符。

描述符的作用是用来代理一个类的属性,需要注意的是描述符不能定义在被使用类的构造函数中,只能定义为类的属性,它只属于类的,不属于实例,我们可以通过查看实例和类的字典来确认这一点。

描述符是实现大部分Python类特性中最底层的数据结构的实现手段,我们常使用的@classmethod、@staticmethd、@property、甚至是__slots__等属性都是通过描述符来实现的。它是很多高级库和框架的重要工具之一,是使用到装饰器或者元类的大型框架中的一个非常重要组件。注:装饰器和元类等概念我们在以后文章中说明。

如下示例一个描述符及引用描述符类的代码:

class Descriptors:
 
 def __init__(self, key, value_type):
 self.key = key
 self.value_type = value_type
 
 def __get__(self, instance, owner):
 print("执行Descriptors的get")
 return instance.__dict__[self.key]
 
 def __set__(self, instance, value):
 print("执行Descriptors的set")
 if not isinstance(value, self.value_type):
 raise TypeError("参数%s必须为%s"%(self.key, self.value_type))
 instance.__dict__[self.key] = value 
 
 def __delete__(self, instance):
 print("执行Descriptors的delete")
 instance.__dict__.pop(self.key) 
 
class Person:
 
 name = Descriptors("name", str)
 age = Descriptors("age", int)
 
 def __init__(self, name, age):
 self.name = name
 self.age = age
 
 
person = Person("xiaoming", 15)
print(person.__dict__)
person.name
person.name = "jone"
print(person.__dict__)

其中,Descriptors类就是一个描述符,Person是使用描述符的类。

类的__dict__属性是类的一个内置属性,类的静态函数、类函数、普通函数、全局变量以及一些内置的属性都是放在类__dict__里。

在输出描述符的变量时,会调用描述符中的__get__方法,在设置描述符变量时,会调用描述符中的__set__方法。

如上例子的运行结果如下:

文档

python描述符有什么作用

python描述符有什么作用:本文主要介绍描述符的定义,个人的一些理解。希望看完这篇文章后,你对描述符有了更清晰的认识。什么是描述符官方的定义:描述符是一种具有捆绑行为的对象属性。访问(获取、设置和删除)它的属性时,实际是调用特殊的方法(_get_(),_set_(),_dele
推荐度:
标签: 用途 功能 作用
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top