Consideremos el siguiente ejemplo:Python: ¿Cómo pasar más de un argumento al getter de la propiedad?
class A:
@property
def x(self): return 5
Así que, por supuesto, llamar a la a = A(); a.x
volverá 5
Pero imaginar que usted quiere ser capaz de modificar la propiedad x.
De esta manera, por ejemplo:
class A:
@property
def x(self, neg = False): return 5 if not neg else -5
y llamarlo con a = A(); a.x(neg=True)
que levantará un TypeError: 'int' object is not callable
, es bastante normal, ya que nuestra x
se evalúa como 5
.
Entonces, me gustaría saber cómo se puede pasar más de un argumento al comprador de la propiedad, si es posible.
Lo sé! Y puedes ver la llamada 'a.x' en mi primer ejemplo. – Rizo
@Rizo: las propiedades simplemente no están diseñadas para eso. – XORcist