@vladqwelkj

Как выполнять какой-либо функционал, при обращении к полю класса в python?

Допустим, у меня есть класс биржевого приказа Order, и при изменении какого-либо поля выполняется функционал, для применения изменений.
Пример:
some_order = Order(SELL, amount=123, price=74.3)
some_order.price = 80.1 #После того, как значение поля изменилось, изменения должны автоматически отправиться на сервер.

Возможно ли реализовать такой класс? И если да, то как?
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
class Order:

    def __init__(self, op, amount=0, price=0):
        self.__op = op
        self.__amount = amount
        self.__price = price

    @property
    def price(self):
        return self.__price

    @price.setter
    def price(self, value):
        print("sending info to serverz")
        self.__price = value


BUY = "buy"
SELL = "sell"

some_order = Order(SELL, amount=123, price=74.3)
some_order.price = 80.1

Выведет "sending info to serverz"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Использовать getter и setter методы в этом классе, в которых вызывать дополнительные операции при чтении и установке значения.

Кроме того, можно использовать декоратор @property для сохранения такого же синтаксиса чтения и установки значения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы