Python--描述符

Python–描述符

1.描述符

什么是描述符?

如果一个类实现了 get()、set()和__delete__()中的其中任意一种方法的新式类,用这个类创建的实例对象称之为“描述符对象”,用上述类创建的对象,用来当做另外一个类的类属性的值,我们把这个类属性称之为“描述符”。

class Mytest(object):
	def __get__(self, instance, owner):
		print("__get__被调用")
		return "get"
	
	def __set__(self, instance, value):
		print("__set__被调用")

	def  __delete__(self, instance):
		print("__delete__被调用")


class ThemTest(object):
	test = Mytest()

them = ThemTest()
them.test  # 调用 __get__
them.test = 'python'  # 调用 __set__
del them.test   # 调用__delete__

运行效果:
描述符运行效果

描述符的作用

当访问一个属性时,我们可以不直接给一个值,而是接一个描述器,让访问和修改设置时自动调用__get__方法和__set__方法。再__get__方法和__set__方法中进行某种处理,就可以实现更改操作属性行为的目的。这就是描述符的作用。

为什么要用描述符

因为python是一个动态类型解释性语言,不像C/C++等静态变异型语言,数据类型在编译时便可以进行验证,而python中必须添加额外的类型检查逻辑代码才能做到这一点,这就是描述符的初衷。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值