У меня есть класс со сложным элементом данных, который я хочу сохранить "статическим". Я хочу инициализировать его один раз, используя функцию. Как Pythonic что-то вроде этого:
def generate_data():
... do some analysis and return complex object e.g. list ...
class Coo:
data_member = generate_data()
... rest of class code ...
Функция generate_data
требует много времени для завершения и возвращает данные, которые остаются постоянными в области выполняемой программы. Я не хочу, чтобы он запускался каждый раз, когда создается экземпляр класса Coo.
Кроме того, для проверки, если я не присваиваю ничего data_member
в __init__
, он останется "статическим"? Что делать, если метод в Coo добавляет некоторое значение в data_member
(при условии, что он является списком) - будет ли это добавление доступным для остальных экземпляров?
Спасибо