Рассмотрим следующий пример:
class A:
@property
def x(self): return 5
Итак, конечно, вызов a = A(); a.x
вернет 5
Но представьте, что вы хотите изменить свойство x.
Таким образом, например:
class A:
@property
def x(self, neg = False): return 5 if not neg else -5
И назовите его a = A(); a.x(neg=True)
Это вызовет TypeError: 'int' object is not callable
, что вполне нормально, так как наш x
оценивается как 5
.
Итак, я хотел бы знать, как передать более одного аргумента в свойство getter, если это возможно вообще.