Вопрос:

ООП: методы получения / установки

python oop

31797 просмотра

2 ответа

19827 Репутация автора

Итак, я прочитал, что вы должны получить доступ к атрибутам объекта через методы получения / установки, такие как 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())
Автор: hatmatrix Источник Размещён: 28.11.2011 02:59

Ответы (2)


48 плюса

603444 Репутация автора

Решение

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

Автор: unutbu Размещён: 28.11.2011 03:03

2 плюса

1420 Репутация автора

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

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

Автор: Wieland Размещён: 28.11.2011 03:05
Вопросы из категории :
32x32