I have created a class and declared some variables inside it's constructor.
This class also has some methods.
I have also created a decorator which takes a parameter.
What I want is to use that decorator before those methods and pass one of the variable from the class constructor.
Below is my code:
Decorator:
def thread_switch_decorator(argument):
def decorator(function):
def wrapper(*args, **kwargs):
argument.stop()
result = function(*args, **kwargs)
argument.start()
return result
return wrapper
return decorator
Class and Methods:
class MainWindow(QMainWindow):
def __init__(self):
self.my_thread = initiate_connect()
@thread_switch_decorator(argument=self.my_thread) # <--- Here is the problem
def home_page(self):
pass
Error:
@thread_switch_decorator(argument=self.my_thread)
NameError: name 'self' is not defined
On the code above where I am using the decorator I can not pass the parameter from the constructor. Which is logical.
My question is, how can I do this?