Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/06/2014, 05:56
Avatar de Italico76
Italico76
 
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: que son los python descriptors

Los descriptores son como las "propiedades" en C# de .NET, agrupan los getters y setters que acceden a los atributos de una clase.

__set__() y __get__() son muy parecidos a los metodos magicos de PHP: __set() y __ge() ... se llaman cuando se intenta hacer un acceso a un atributo.


Ejemplo sacado del manual:

Cita:
class RevealAccess(object):
"""A data descriptor that sets and returns values
normally and prints a message logging their access.
"""

def __init__(self, initval=None, name='var'):
self.val = initval
self.name = name

def __get__(self, obj, objtype):
print('Retrieving', self.name)
return self.val

def __set__(self, obj, val):
print('Updating', self.name)
self.val = val

>>> class MyClass(object):
x = RevealAccess(10, 'var "x"')
y = 5

>>> m = MyClass()
>>> m.x
Retrieving var "x"
10
>>> m.x = 20
Updating var "x"
>>> m.x
Retrieving var "x"
20
>>> m.y
5
__delete__() tambien forma parte de una propiedad pero no encontre nada de informacion ***


https://docs.python.org/3.5/referenc...ect.__delete__
__________________
Salu2!

Última edición por Italico76; 01/06/2014 a las 06:19