Как вставить функцию которое находится в другом функции на variable?

Мне нужно вставить функцию которое находится в другом функции на variable Calculator

def Calculate(str):
    def Calculate2(str):
        print(int(eval(str)))
Calculator = Calculate2
Calculator(input())

Этот код даёт ошибку NameError: name 'Calculate2' is not defined. Did you mean: 'Calculate'? Я даже попробовал так

def Calculate(str):
    global Calculate2
    def Calculate2(str):
        print(int(eval(str)))
Calculator = Calculate2
Calculator(input())

Но всё равно та ошибка


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

Автор решения: Алексей Р

Используйте return Calculate2

def Calculate():
    def Calculate2(expression):
        print(int(eval(expression)))
    return Calculate2
Calculator = Calculate()
Calculator(input('Введите выражение: '))

Переменную c именем str лучше не использовать, чтобы не перекрывать встроенный объект str

Введите выражение: 1+2+3
6
→ Ссылка
Автор решения: yngdev

Можно попробовать сделать так:

def calculate(string: str):
    def do_calc(s):
        return int(eval(s))
    return do_calc(string)


print(calculate('100 * 15'))
→ Ссылка