python中的属性和属性有什么区别?

python中,一切都是对象。每个对象都有属性,方法或功能。属性由数据变量描述,例如名称,年龄,身高等。

属性是一种特殊的属性,具有getter,setter和delete方法,例如__get __,__ set__和__delete__方法。

但是,Python中有一个属性装饰器,它提供对属性的getter / setter访问属性是一种特殊的属性。基本上,当Python遇到以下代码时:

foo = SomeObject()print(foo.bar)

它在foo中查找bar,然后检查bar以查看它是否具有__get __,__ set__或__delete__方法,如果具有,则为属性。如果它是一个属性,则它不仅会返回bar对象,还将调用__get__方法并返回该方法返回的内容。

在Python中,您可以使用property函数定义getter,setter和delete方法。如果只需要read属性,则可以在方法上方添加一个@property装饰器。

class C(object):

    def __init__(self):

        self._x = None

#C._x is an attribute

@property

    def x(self):

        """I'm the 'x' property."""

        return self._x

# C._x is a property   This is the getter method

@x.setter # This is the setter method

    def x(self, value):

        self._x = value

@x.deleter # This is the delete method

    def x(self):

        del self._x

以上是 python中的属性和属性有什么区别? 的全部内容, 来源链接: utcz.com/z/326512.html

回到顶部