3

I made a class "var" that has on_set(),on_get() and on_change() methods:

class var:
    def __init__(self):
        self.v = None
    # setter = lambda self,v: print(self.v,v)
    def set(self,v):
        if v != self.v:
            self.v = v
            self.on_change()
        self.on_set()
    def get(self):
        self.on_get()
        return self.v
    def on_set(self):
        pass
    def on_get(self):
        pass
    def on_change(self):
        pass    

then i did this:

a=var()
a.on_set = lambda self: print(self.v)
a.set(2)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\api\py\Styg\Styg.py", line 44, in set
    self.on_set()
TypeError: <lambda>() missing 1 required positional argument: 'self'

what am i doing wrong?

LazyBum Q
  • 257
  • 4
  • 12

0 Answers0