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

Рейтинг: 0Ответов: 2Опубликовано: 11.01.2023

Мне нужно вставить функцию которое находится в другом функции на 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())

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

Ответы

▲ 0

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

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

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

Введите выражение: 1+2+3
6
▲ 0

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

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


print(calculate('100 * 15'))