Phi*_*l H 2 javascript php c# python properties
在最近的一次C#和WPF中,我喜欢C#的属性:
public double length_inches
{
get { return length_metres * 39.0; }
set { length_metres = value/39.0; }
}
Run Code Online (Sandbox Code Playgroud)
当然,注意到length_metres可能会从字段变为属性,而代码无需关心.WPF还可以非常愉快地将UI元素绑定到对象属性.
当我第一次学习类和对象时,我认为有一种方法可以做到,因为它看起来很明显!隐藏类中复杂性的关键在于您不再需要关心存储的内容.但直到现在才看到它.
有趣的是,我第一次看到它在VB.Net中完成.OO纯度的前沿.
问题是,我可以重新使用我经常使用的其他语言的属性,比如javascript,python,php吗?在javascript中,如果我将一个变量设置为一个闭包,我不会再次获得闭包,而不是它的结果吗?
Jar*_*die 19
Python绝对支持属性:
class Foo(object):
def get_length_inches(self):
return self.length_meters * 39.0
def set_length_inches(self, val):
self.length_meters = val/39.0
length_inches = property(get_length_inches, set_length_inches)
Run Code Online (Sandbox Code Playgroud)
从Python 2.5开始,只读属性存在语法糖,2.6中也存在可写糖:
class Foo(object):
# 2.5 or later
@property
def length_inches(self):
return self.length_meters * 39.0
# 2.6 or later
@length_inches.setter
def length_inches(self, val):
self.length_meters = val/39.0
Run Code Online (Sandbox Code Playgroud)
var object = {
// .. other property definitions ...
get length_inches(){ return this.length_metres * 39.0; },
set length_inches(value){ this.length_metres = value/39.0; }
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1034 次 |
| 最近记录: |