How to access constructor variables in python decorator?

Viewed 33

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?

0 Answers
Related