草庐IT

getter-setter

全部标签

python - 在使用 @property 装饰器时在属性的 setter 方法中使用 super() 会引发 AttributeError

尝试覆盖子类中的属性时,我对这种行为感到有些困惑。第一个示例设置了两个类,Parent和Child。Parent继承自object,而Child继承自Parent。属性a是使用属性装饰器定义的。当调用child.a的setter方法时,会引发AttributeError。在第二个示例中,通过使用property()函数而不是装饰器,一切都按预期工作。谁能阐明为什么行为不同?另外,是的,我知道不需要Child中的__init__定义。示例1-使用@propertyclassParent(object):def__init__(self):self._a='a'@propertydefa(

python - 我如何从 __init__ 调用属性 setter

我有以下python代码块:importhashlibclassUser:def_set_password(self,value):self._password=hashlib.sha1(value).hexdigest()def_get_password(self):returnself._passwordpassword=property(fset=_set_password,fget=_get_password)def__init__(self,user_name,password):self.password=passwordu=User("bob","password1")p

python - 修复处理@property setter装饰器的pyflakes

Pyflakes不能很好地处理以下代码:@propertydefnodes(self):returnself._nodes@nodes.setterdefnodes(self,nodes):"""setthenodesonthisobject."""assertnodes!=[]#withoutnodesnoroute..self.node_names=[node.namefornodeinnodes]self._nodes=nodes使用vim和使用pyflakes的syntastic我得到以下错误:W806redefinitionoffunction'nodes'fromline5

Python:多个属性,一个 setter/getter

考虑以下类定义classof2010(object):def__init__(self):self._a=1self._b=2self._c=3defset_a(self,value):print('settinga...')self._a=valuedefset_b(self,value):print('settingb...')self._b=valuedefset_c(self,value):print('settingc...')self._c=valuea=property(fset=self.set_a)b=property(fset=self.set_b)c=proper

Python:多个属性,一个 setter/getter

考虑以下类定义classof2010(object):def__init__(self):self._a=1self._b=2self._c=3defset_a(self,value):print('settinga...')self._a=valuedefset_b(self,value):print('settingb...')self._b=valuedefset_c(self,value):print('settingc...')self._c=valuea=property(fset=self.set_a)b=property(fset=self.set_b)c=proper

设置列计数属性时,JQuery CSS setter 在 webkit 中不起作用

我有一个使用JavaScript动态生成的HTMLul。生成它之后,我使用JQuery的$('#id').css('property',value)方法在所述ul上设置样式。这是有问题的代码的样子:$('#actionSpace#datasetContent').css('-moz-column-count',this.content.length).css('-webkit-column-count',this.content.length).css('column-count',this.content.length).css('width',this.content.length

设置列计数属性时,JQuery CSS setter 在 webkit 中不起作用

我有一个使用JavaScript动态生成的HTMLul。生成它之后,我使用JQuery的$('#id').css('property',value)方法在所述ul上设置样式。这是有问题的代码的样子:$('#actionSpace#datasetContent').css('-moz-column-count',this.content.length).css('-webkit-column-count',this.content.length).css('column-count',this.content.length).css('width',this.content.length

objective-c - Objective-C 中 @property 声明中的 "getter"关键字?

我注意到Apple文档中的一些代码示例在声明属性时显示了以下样式:@property(nonatomic,getter=isActivated)BOOLactivated;我知道它允许您为您的getter方法指定一个特定的名称。我想知道使用这种风格的原因和优势是什么。我能否使用点符号来获取值(例如BOOLaBool=someObject.isActivated)?或者我应该使用[someObjectisActivated];访问属性?谢谢! 最佳答案 不,getter关键字只改变方法名。这个想法是您将像访问变量一样访问该属性:if(

objective-c - Objective-C 中 @property 声明中的 "getter"关键字?

我注意到Apple文档中的一些代码示例在声明属性时显示了以下样式:@property(nonatomic,getter=isActivated)BOOLactivated;我知道它允许您为您的getter方法指定一个特定的名称。我想知道使用这种风格的原因和优势是什么。我能否使用点符号来获取值(例如BOOLaBool=someObject.isActivated)?或者我应该使用[someObjectisActivated];访问属性?谢谢! 最佳答案 不,getter关键字只改变方法名。这个想法是您将像访问变量一样访问该属性:if(

ios - 带有自定义属性 getter 的 KVO 通知

我正在尝试在iOS中收听UITextView上的editable属性。在UITextView.h的header中,editable属性定义为:@property(nonatomic,getter=isEditable)BOOLeditable;为了监听KVO通知,我使用了addObserver模式,我将keyPath作为NSStringFromSelector(@selector(isEditable))传递,这样如果我正在使用Xcode就会警告我未定义的选择器。注册isEditable键路径顺利进行,但在更改TextView上的editable属性后,我从未收到属性更改的通知。我正在