У меня есть эта функция:
import threading
def threaded(fn):
def wrapper(*args, **kwargs):
thread = threading.Thread(target=fn, args=args, kwargs=kwargs)
thread.start()
return thread
return wrapper
И я использую ее, чтобы заставить другие мои функции работать в новом потоке следующим образом:
@threaded
def createUser(user: User):
print("\nUser name:" + str(user.name))
...
Метод createUser
отлично работает когда я вызываю его без этой нотации, но когда он выполняется в новом потоке, я получаю следующее сообщение об ошибке:
AttributeError: 'NoneType' object has no attribute 'name'
Кто-нибудь знает, как я могу избежать этой ошибки и сохранить переменную, введенную внутри этого вызова потока ? Я также попытался запустить его как обычный вызов потока, например:
threading.Thread(target=createUser, args=[user]).start()
Но он все равно не работает!