Ленивая инициализация члена класса Python

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

class MyClass(object):

    _MY_DATA = None

    @staticmethod
    def _retrieve_my_data():
        my_data = ...  # costly database call
        return my_data

    @classmethod
    def get_my_data(cls):
        if cls._MY_DATA is None:
            cls._MY_DATA = MyClass._retrieve_my_data()
        return cls._MY_DATA

Ответы на вопрос(5)

Ваш ответ на вопрос