202011-16 Python descriptor(描述符)的实现 问题问题1Python是一种动态语言,不支持类型检查。当需要对一个对象执行类型检查时,可能会采用下面的方式:classFoo(object):def__init__(self,a):ifisinstance(a,int):self.__a=aelse:raiseTypeError("Mustbeanint")defset_a(self,val):ifisinstance(val,int):self.__a=valelse:raiseTypeError("Mustbeanint")defget_a(self):returnself.__a上述是一种类型检查的方法,但是如果需要类型检查... 继续阅读 >
202009-24 Python描述符descriptor使用原理解析 描述符(descriptor)是实现了__get__、__set__、__del__方法的类,进一步可以细分为两类:数据描述符:实现了__get__和__set__非数据描述符:没有实现__set__描述符在类的属性调用中起着很重要的作用,类在调用属性时,遵守两个规则:按照实例属性、类属性的顺序选择属性,即实例属性优先于类属性如果在类属性中发现同名的数据描述符,那么该描述符会优先于实例属性非数据描述符会被实例属性覆盖classA:def__get__(self,obj,... 继续阅读 >