2024-04-19 14:43:29 发布
网友
这是我的密码:
def createProp(fget, fset, fdel): class prop(object): get=property(fget,fset,fdel) return prop().get x=createProp(getter,setter,deleter)
我想做的是让它返回一个属性,这样我就可以使变量x成为一个属性,但我不知道如何使这样的函数。它所做的是返回属性的值,而不是属性本身。你知道吗
python 2.6版
createProp = property
属性是非常普通的对象。property只是另一个类。你可以在运行时创建它的一个实例,在你想要的任何上下文中(不需要类),传递它们等等。是的,你可以(毫无意义地)在本地类中创建一个实例,然后从那里获取它。但由于整个属性点覆盖了实例上的属性访问,您必须从类中获取它:return prop.get。你知道吗
property
return prop.get
然而,当property通过descriptor protocol发挥其魔力时,描述符必须在类中才能发挥作用。你不能有一个全局(或局部)变量作为属性,你可以,但是使用它只会给你一个描述符对象,而不是运行fget,赋值也不会触发fset。你不能做那样的事,你也不应该
fget
fset
属性是非常普通的对象。
property
只是另一个类。你可以在运行时创建它的一个实例,在你想要的任何上下文中(不需要类),传递它们等等。是的,你可以(毫无意义地)在本地类中创建一个实例,然后从那里获取它。但由于整个属性点覆盖了实例上的属性访问,您必须从类中获取它:return prop.get
。你知道吗然而,当
property
通过descriptor protocol发挥其魔力时,描述符必须在类中才能发挥作用。你不能有一个全局(或局部)变量作为属性,你可以,但是使用它只会给你一个描述符对象,而不是运行fget
,赋值也不会触发fset
。你不能做那样的事,你也不应该相关问题 更多 >
编程相关推荐