作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用 Python 2.5.1 中未实现的 @property.setter
。
这是一个如何在较新版本的 python 中执行此操作的示例。
由于我使用的是较旧版本的 Python,因此我无法真正使用此代码。
class Info(object):
def __init__(self):
self.x = None
@property
def x(self):
return self.x
@x.setter
def x(self, value):
self.x = value
test = Info()
test.x = "It works!"
print(test.x)
Output: It works!
最佳答案
2.5 中的 property 支持 fget、fset 和 fdel,但不支持 @property.setter 装饰器。
所以,有两种解决方案:
第一个解决方案:
class Info(object):
def __init__(self):
self._x = None
def get_x(self):
return self._x
def set_x(self, value):
self._x = value
x = property(get_x, set_x)
第二个解决方案:
class _property(__builtin__.property):
def getter(self, fget):
return __builtin__.property(fget, self.fset, self.fdel)
def setter(self, fset):
return __builtin__.property(self.fget, fset, self.fdel)
def deleter(self, fdel):
return __builtin__.property(self.fget, self.fset, fdel)
try:
property.getter
except AttributeError:
property = _property
关于python - 在 python 2.5.1 或更早版本中使用属性和 setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25477612/
我安装了 fakeLoader (jquery 预加载器)但我无法在页面加载前显示它。 在 mozilla 中它几乎可以正常工作(奇怪的是......),但在 Chrome 和 Opera 中,页面首
我试图通过以下代码在触摸事件上移动 ImageView: public class ScrollableImageView extends ImageView { private Gestur
我是一名优秀的程序员,十分优秀!