При вызове функции выводит .func2 at 0x7f4c18cef158>

def result(a, b, c):

    def func1(a, b):
        return a * b

    def func2(func1, c):
        return func1 * c

    return func2

print(result(2, 3, 4))

Вроде как должен вернуть число 12, но выводит строку <function result..func2 at 0x7f4c18cef158>. Пытался менять способы вывода, но увы. Кажется, что задача проста и ответ на нее также прост, но никак не могу сообразить в чем дело.


Ответы (1 шт):

Автор решения: Danis
def result(a, b, c):

    def func1():
        return a * b

    def func2():
        return func1() * c

    return func2()

print(result(2, 3, 4))

либо:

def result(a, b, c):

    def func1():
        return a * b

    def func2():
        return func1() * c

    return func2

n = result(2, 3, 4)
print(n())

вывод в обоих случаях:

24

→ Ссылка