Я нахожусь в поиске способа создания потоков с помощью обертки, но результат функции обертки ДОЛЖЕН быть по-прежнему доступен.
Посредством поиска в Stackoverflow появилось не очень идеальное решение. Как показано в приведенном ниже коде:
def thread_run(func):
"""
:param func:
:return:
"""
def wrapper(*args, **kwargs):
s = threading.Thread(target=func, args=args, kwargs=kwargs)
s.daemon = True
s.start()
return s
return wrapper
с этой оболочкой недостаточно, потому что:
@thread_run
def powers(number):
return number**2
if __name__ in "__main__":
print(powers(2)) #out put <Thread(Thread-1, stopped daemon 123145406771200)>
Я хочу, чтобы вывод фрагмента был 4 print(powers(2))
что мне делать?