не много поправил ваш код
class Caller:
    def __init__(self, *args, **kwargs):
        self.list_func = []
        self.args = args
        self.kwargs = kwargs
    def __iter__(self):
        for func in self.list_func:
            yield f'{func.__name__}: {func(*self.args, **self.kwargs)}'
    def app_func(self, func):
        self.list_func.append(func)
def register_function(caller0):
    def my_decorator(func):
        caller0.app_func(func)
    return my_decorator
caller1 = Caller(1, 2, z=5)  # создаем один объект Caller'а, который хранит в себе числовые аргументы
@register_function(caller1)  # регистрируем функцию в обоих объектах
def summator(x, y, z):  # сама функция просто возвращает сумму аргументов
    return x + y + z
@register_function(caller1)  # регистрируем функцию в обоих объектах
def func_2(x, y, z):  # сама функция просто возвращает сумму аргументов
    return x * y * z
for result in caller1:  # теперь будем лениво вызывать функции, зарегистрированные
    print(result)
summator: 8
func_2: 10