Как раскрыть кавычки у + и - в Python?
Есть функция, которая среди аргументов получает арифметическое действие. Оно естественно заключено в кавычки. Расчёт для return происходит примерно так:
func_arg_1 = '10'
func_arg_2 = '5'
func_arg_3 = '+'
result = int(func_arg_1) + func_arg_2 + int(func_arg_2)
Пробовал через eval но аргумент всё же раскрывает как строку
result = eval(int(func_arg_1) + func_arg_2 + int(func_arg_2))
Возможно есть какое либо очевидное решение, но пока о нём не знаю (кодингом не так долго занимаюсь)
Пример взятый из моего кода:
def(self, status)
self.cur.execute("SELECT reputation FROM profiles WHERE vkid = %s", [self.replay_id])
rep = eval(str(self.cur.fetchall()[0][0])) + str(status) + str(self._karma(self.user_id))
p.s. функция self._karma возвращает int, но как видно из примера преобразуется в str
TraceBack следующий:
line 185, in restatus
rep = eval(str(self.cur.fetchall()[
TypeError: unsupported operand type(s) for +: 'int' and 'str'
Ответы (1 шт):
Автор решения: Эникейщик
→ Ссылка
Если в примере с eval убрать int и не путаться с именами аргументов, то все заработает.