Source code for cModules.DataTree

import random

[docs] class MyObject: def __init__(self, base_value): self.base_value = base_value print(f"Объект создан с базовым значением: {self.base_value}") @property def dynamic_list(self): """ Этот метод будет вызываться КАЖДЫЙ раз при обращении к 'obj.dynamic_list'. """ print(">>> Генерирую новый список...") # Процедурная генерация: # создаем список на основе base_value + случайное число return [ f"Sub-object {i + self.base_value + random.randint(0, 5)}" for i in range(3) ]
# --- Демонстрация --- # 1. Создаем объект obj = MyObject(10) # 2. Первое обращение к свойству print("\n--- Первое обращение:") my_list_1 = obj.dynamic_list print(my_list_1) # 3. Второе обращение к свойству print("\n--- Второе обращение (список будет другим):") my_list_2 = obj.dynamic_list print(my_list_2) # 4. Изменим внутреннее состояние объекта obj.base_value = 100 # 5. Третье обращение (список снова генерируется, уже на основе нового base_value) print("\n--- Третье обращение после изменения base_value:") my_list_3 = obj.dynamic_list print(my_list_3)