一个类"属性"之间有什么区别?和"财产"?

时间:2017-11-14 23:27:10

标签: oop properties attributes

有人可以仔细描述"属性和#34;之间的细微差别。和"属性"?我发现它们有时可以互换使用,也可以作为别人的区别对象。

1 个答案:

答案 0 :(得分:-1)

attributeproperty字词在大多数情况下都是同义词(memberfield),但property通常是pythonC#pascal等)用于描述"虚拟属性"实际上是通过get / set方法实现的(attribute用于常规属性)。

例如(python-like pseudocode):

class MyClass:

    string first_name_attribute;
    string last_name_attribute;

    @property
    def full_name(self):
        """Getter method returns the virtual "full name"."""
        return self.first_name_attribute + " " + self.last_name_attribute

    @full_name.setter
    def full_name(self, string value):
        """Setter method sets the virtual "full name"."""
        first_name, last_name = value.split(" ")
        self.first_name_attribute = first_name
        self.last_name_attribute = last_name

这里有两个"真实"属性 - first_name_attributelast_name_attribute以及"虚拟"财产 - full_name