Подтвердить что ты не робот

ООП: методы геттера/сеттера

Итак, я прочитал, что вы должны получить доступ к атрибутам объекта с помощью методов getter/setter, таких как object.get_this() или object.set_that(value). Поддерживает ли этот код методы, которые также определены в классе? Или они предназначены только для использования с экземплярами объектов. Например, так ли идиоматично это делать,

class test:
    def __init__(self,value):
        self.value = value
    def get_value(self):
        return self.value
    def method(self):
        return some_operation(self.value)

с get_value(), определенным для доступа к value для экземпляра объекта, или должен get_value() также использоваться в методах класса?

class test:
    def __init__(self,value):
        self.value = value
    def get_value(self):
        return self.value
    def method(self):
        return some_operation(self.get_value())
4b9b3361

Ответ 1

В python не использовать методы getter/setter. Вместо этого просто получите доступ к самому атрибуту или, если вам нужно, чтобы код запускался каждый раз при доступе или настройке атрибута, используйте свойства.

Ответ 2

Я бы не обращался к атрибутам объекта в методах указанного объекта по-другому, чем от того, что я ожидал бы от других объектов для доступа к ним. Зачем? Я не уверен, это просто кажется странным.

Python делает это очень просто, если вы используете декоратор свойств, который устраняет необходимость в геттерах/сеттерах, называемых "get_foo" / "set_foo",.