Я стараюсь познакомиться с декораторами. Это программа, которую я создал для этого, но она продолжает давать мне ошибку TypeError: 'int' object is not callable
, которую я не знаю, как исправить.Python decorator TypeError 'object is not callable'
#Filename: decorator_practice.py
def add(x):
def add_1():
add_1 = x() + 1
return add_1
def minus(x):
def minus_1():
return x() - 1
return minus_1
def multi(x, times=2):
def multi_2():
return x() * 2
def multi_3():
return x() * 3
def multi_4():
return x() * 4
if times == 2:
return multi_2
elif times == 3:
return multi_3
elif times == 4:
return multi_4
else:
return "Please enter times between 2 and 4"
def create_x():
x = input('Give variable x a value: ')
return x
add(create_x()())
Я бегу это и тип: 5
Может кто-нибудь мне помочь? Благодаря!
но почему бы и нет? create_x возвращает x, который позволяет говорить 5! в функции add (x) даст мне ---> return 5 + 1! Почему бы и нет? :/ – midkin
Поскольку он не дает вам '5 + 1', он дает вам' 5()() + 1', пытаясь вызвать '5', как если бы это была функция. Это относится к сообщению об ошибке. (И если вызов '5' был успешным, ваша программа попытается снова вызвать результат. Первый вызов происходит из второго набора символов в вашем' create_x()() ', второй вызов происходит из' x() 'in' add_1'.) –
Дорогие читатели из будущего: Пожалуйста, обратите внимание, что это выше ** Python 2 **. В Python 3, 'input()' просто вернет вход, в Python 2, он будет его оценивать. –