首页 > 解决方案 > 类型错误:() 缺少 1 个必需的位置参数:'self'

问题描述

我创建了一个具有 on_set()、on_get() 和 on_change() 方法的“var”类:

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    

然后我这样做了:

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'

我究竟做错了什么?

标签: python

解决方案


推荐阅读