Python Función property()

Python 内置函数Funciones integradas de Python


Descripción

property()La función devuelve el valor de un atributo en las clases de nuevo estilo.

Sintaxis

La sintaxis del método property() es la siguiente:

class property([fget[, fset[, fdel[, doc]]]])

Parámetros

  • fget -- función que obtiene el valor del atributo
  • fset -- función que establece el valor del atributo
  • fdel -- función que elimina el valor del atributo
  • doc -- información descriptiva del atributo

Valor de retorno

Devuelve el atributo de la clase de nuevo estilo.

Ejemplo

Definir un valor de atributo controlable x

class C(object): def __init__(self): self._x = None def getx(self): return self._x def setx(self, value): self._x = value def delx(self): del self._x x = property(getx, setx, delx, "I'm the 'x' property.")

SicSíCes una instanciación, c.x activará el getter, c.x = value activará el setter, y del c.x activará el deleter.

Si se proporciona el parámetro doc, se convertirá en el docstring del valor de la propiedad; de lo contrario, la función property copiará el docstring de la función fget (si lo hay).

Usar la función property como decorador es una forma muy conveniente de crear atributos de solo lectura:

class Parrot(object): def __init__(self): self._voltage = 100000 @property def voltage(self): """Get the current voltage.""" return self._voltage

El código anterior convierte el método voltage() en el método getter de un atributo de solo lectura con el mismo nombre.

Los métodos getter, setter y deleter de property también se pueden usar como decoradores:

class C(object): def __init__(self): self._x = None @property def x(self): """I'm the 'x' property.""" return self._x @x.setter def x(self, value): self._x = value @x.deleter def x(self): del self._x

Este código es exactamente igual que el primer ejemplo, pero hay que tener en cuenta que los nombres de estas funciones adicionales son los mismos que los de la propiedad, como x aquí.

Python 内置函数Funciones integradas de Python

Otras extensiones