我正在尝试下面的程序,得到以下错误:
类型错误:set_a() 缺少 1 个必需的位置参数:“值”
代码 :
class A:
def __init__(self):
pass
@property
def a(self,value):
return value
@property
def set_a(self, value):
self.a(value)
def call_req(self,value):
return self.set_a(value)
aobj = A()
aobj.call_req(5)
尝试了这里给出的解决方案,没有解决。
有人可以解释为什么我收到错误,还是我正在尝试的完全错误?
A@property
是返回值的东西。您从不调用a @property
,调用是隐式地将其作为属性访问。self.set_a
正在尝试调用set_a
以返回一个值,然后您尝试使用后面的括号调用该值。因此,在您认为正在拨打的电话之前有一个隐式调用,它缺少参数。您可能想像这样声明属性:
class A:
def __init__(self):
self._foo = 42
@property
def a(self):
return self._foo
@a.setter
def a(self, value):
self._foo = value
obj = A()
obj.a = 5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句