#python #python-decorators
Вопрос:
я получаю TypeError: 'NoneType' object is not callable
ошибку при использовании get_frame_work()
. как я могу это исправить?
import sys
def main(frame_work):
if frame_work() == "selenium":
pass
elif frame_work() == "puppeteer":
pass
elif frame_work() == "play_wright":
pass
else:
raise Exception("Invalid command!")
@main
def get_frame_work():
return str(sys.argv[1].lower())
get_frame_work() #get_frame_work does not give an error unlike get_frame_work().
Ответ №1:
Декоратору необходимо вернуть фактический объект функции, который обертывает оформленную функцию. Изменение вашего main
, как это, заставит его работать.
import sys
def main(frame_work):
def f():
if frame_work() == "selenium":
pass
elif frame_work() == "puppeteer":
pass
elif frame_work() == "play_wright":
pass
else:
raise Exception("Invalid command!")
return f