У меня есть класс с переменной экземпляра str. Из этой переменной экземпляра я вычисляю вторую переменную экземпляра, которая представляет собой просто строку, разбитую на определенные «атомы». Вторая переменная экземпляра полностью определяется первой. Я сделал ее переменной экземпляра, потому что считаю, что ее лучше всего рассматривать как «свойство» класса. Я немного не уверен, как обращаться с производными переменными экземпляра. Особенно:
1) Я думаю, что они должны быть доступны только для получения. Однако, поскольку вычисление производной переменной экземпляра довольно интенсивное, я хочу, чтобы оно выполнялось при инициации класса, а не при вызове переменной. 2) Если я делаю функцию исключительно для вычисления переменной экземпляра, есть ли способ пометить это? 3) Кроме того, я должен передать первую переменную экземпляра в качестве параметра или просто прочитать ее в методе от себя? (в общем, я все еще немного не уверен, когда передавать переменные экземпляра в качестве параметров методам.) 4) Есть ли лучший способ сделать это, о котором я не упомянул? Спасибо
РЕДАКТИРОВАТЬ: Вот упрощенный пример того, что я имею в виду:
class Amendment:
def __init__(self, string):
self.string = string
self.atoms = generate_atoms()
def generate_atoms():
return do_something_that_takes_long(self.string)
.string
и.atoms
были доступны только для чтения? - person PM 2Ring   schedule 20.05.2018