I'm having problems with a wrapper class, and can't figure out what I'm doing wrong. How do I go about getting that wrapper working with any class function with the 'self' argument?
This is for Python 3.7.3. The thing is I remember the wrapper working before, but it seems something has changed...maybe I'm just doing something wrong now that I wasn't before.
class SomeWrapper:
    def __init__(self, func):
        self.func = func
    def __call__(self, *args, **kwargs):
        # this fails because self is not passed
        # ERROR: __init__() missing 1 required positional argument: 'self'
        func_ret = self.func(*args, **kwargs)
        # this is also wrong, because that's the wrong "self"
        # ERROR: 'SomeWrapper' object has no attribute 'some_func'
        # func_ret = self.func(self, *args, **kwargs)
        return func_ret
class SomeClass:
    SOME_VAL = False
    def __init__(self):
        self.some_func()
        print("Success")
    @SomeWrapper
    def some_func(self):
        self.SOME_VAL = True
    def print_val(self):
        print(self.SOME_VAL)
SomeClass().print_val()
 
     
    