【发布时间】:2016-09-23 19:06:06
【问题描述】:
我知道我可以使用描述符来更改静态属性,就像它是普通属性一样。但是,当我尝试对普通类属性使用描述符时,我最终会更改它引用的对象,而不是对象中的值。
如果我有
正常使用,考虑到method(param)返回一个对象
class SomeClass():
property = method(param)
我可以这样做:
instance = SomeClass()
instance.property = 3
并且能够由属性为实例的类处理该设置。
现在,如果我有
class SomeClass():
def__init__(self):
self.property = method(param)
我愿意:
instance = SomeClass()
instance.property = 3
该代码不起作用,我用 3 覆盖对由 method(param) 创建的对象的引用,而不是由描述符处理该设置。
有没有一种方法可以在没有静态方法的情况下使用描述符?本质上,我需要能够创建该类的多个实例,每个实例都有自己独特的属性,可以使用方便的描述符方法进行更改。这可能吗?
Python 版本:2.7
谢谢!
【问题讨论】:
标签: python python-2.7