我正在努力解决标题中提到的错误。
这就是我正在调用的函数:
@classmethod
def set_parameter(self, value, parameter_name=None, parameter_id=None, *args, **kwargs):
"""
Set the new value of a parameter given by name or id.
Returns success.
:param value:
:param parameter_name:
:param parameter_id:
:param args:
:param kwargs:
:return: bool
"""
# get the query object
vs = self._set(value=value, parameter_id=parameter_id, parameter_name=parameter_name, *args, **kwargs)
# check if value setting has succeeded
#
# Not necessary as we get an acknowledge response or Value is out of range
# exception when an invalid value was passed.
# current implementation also often fails due to rounding, e.g. setting 1.0
# but returning 0.999755859375 when performing a self.get_parameter
# value_set = self.get_parameter(parameter_id=parameter_id, parameter_name=parameter_name, *args, **kwargs)
# return True if we got an ACK
return type(vs.RESPONSE) == ACK
我就是这么称呼它的:
mcc = mecom.MeComCommon()
mcc.set_parameter(value=-40, parameter_id=3000)
这就是我得到的:
Traceback (most recent call last):
File "C:\Users\Michal\Desktop\THERMAL ELEPHANT V3 TEST JIG\Python Script\main.py", line 189, in <module>
mcc.set_parameter(value=-40, parameter_id=3000)
File "C:\Users\Michal\Desktop\THERMAL ELEPHANT V3 TEST JIG\Python Script\mecom\mecom.py", line 659, in set_parameter
vs = self._set(value=value, parameter_id=parameter_id, parameter_name=parameter_name, *args, **kwargs)
TypeError: MeComCommon._set() missing 1 required positional argument: 'self'
我尝试了这里提到的事情:https://dev.to/lavary/about-missing-1-required-positional-argument-self-in-python-2i36
但是没有用。所以我希望有人能帮助我。 :)
我认为问题在于
_set
是实例方法,而 set_parameter
是类方法。
尝试删除
@classmethod
装饰器。