Параметр метода или атрибут экземпляра? - PullRequest
0 голосов
/ 21 января 2020

Иногда, когда я разрабатываю новый метод для класса, который должен воздействовать на определенную переменную, я не могу сказать, лучше ли передать эту переменную в качестве параметра метода или лучше сохранить эту переменную как атрибут экземпляра и просто используйте его внутри метода. Каковы преимущества / недостатки обоих подходов?

class A:
    def __init__(self, data):
        self.data = data
    def my_method(self):
        # does something with self.data

Или

class B:
    def my_method(self, data):
        # does something with data

1 Ответ

1 голос
/ 21 января 2020

Это зависит от всех других вещей, которые может делать класс.

В целом, какова абстракция, которую инкапсулирует ваш класс?

Требуется ли data для большого количества операций или только для этого? data изменится? Если data является «точкой» этого класса, то она, вероятно, должна быть в __init__, но если она использует data - , воздействует на объект, то, вероятно, нет.

Нам нужно знать больше ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...