解决了! TypeError:MeComCommon._set() 缺少 1 个必需的位置参数:'self'

问题描述 投票:0回答:1

我正在努力解决标题中提到的错误。

这就是我正在调用的函数:

    @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

但是没有用。所以我希望有人能帮助我。 :)

python typeerror
1个回答
0
投票

我认为问题在于

_set
是实例方法,而
set_parameter
是类方法。

尝试删除

@classmethod
装饰器。

© www.soinside.com 2019 - 2024. All rights reserved.