Python 类实例方法正好接受两个参数,一个给定

Python 类实例方法正好接受两个参数,一个给定,python,instance,Python,Instance,我有点问题。首先,我知道这段代码可以独立运行,不在类中,但我更希望它在类中。第二,当我运行代码时,我得到这个错误TypeError:set\u options()正好接受2个参数(给定1个) 这是我的密码。如果有人能给我指出正确的方向,我将不胜感激。我假设set_options方法没有得到我的jobj实例。我的假设正确吗?人们将如何着手解决这个问题?另外,我有正确的导入,这是我在terminalpython test.py radar 127.0.0.1 hashNumber testplan:

我有点问题。首先,我知道这段代码可以独立运行,不在类中,但我更希望它在类中。第二,当我运行代码时,我得到这个错误
TypeError:set\u options()正好接受2个参数(给定1个)

这是我的密码。如果有人能给我指出正确的方向,我将不胜感激。我假设set_options方法没有得到我的jobj实例。我的假设正确吗?人们将如何着手解决这个问题?另外,我有正确的导入,这是我在terminal
python test.py radar 127.0.0.1 hashNumber testplan:speed

class TransferStuff(object):
tool = sys.argv[1]
target = sys.argv[2]
hash = sys.argv[3]
options = sys.argv[4]

    def set_options(self, test_options):
        option_arr = test_options.split(',')
        new_arr = [i + ':{}'.format(i) for i in option_arr if ':' not in i]

        for i in option_arr:
            if ':' in i:
                new_arr.append(i)
        d = {}
        for i in new_arr:
            temp = i.split(':')
            d[temp[0]] = temp[1]

        return d

    data = {'target': target, 'test': tool, 'HASH': hash,
            'options': set_options(options)}

    def write_to_json(self):
        """Serialize cli args and tool options in json format.

        Write stream to json file.
        """
        with open('envs.json', 'w') as fi:
            json.dump(TransferStuff.data, fi)


if __name__ == "__main__":
    try:
        jobj = TransferStuff()
        jobj.write_to_json()

您的方法位于类中,您需要创建该类的实例:

transfer_stuff_instance = TransferStuff()
并使用此实例调用该方法:


transfer\u stuff\u instance.ser\u options(options)

请正确缩进您的代码,以便更容易地区分类的一部分和内容not@MoxieBall修复了为什么在这里使用类?@juanpa.arrivillaga这不是我的完整代码。这个python中还有另一个类,但不需要在这里发布。那门课上的任何东西都不会影响这门课。我制作了两个类主要是为了可读性。@juanpa.arrivillaga您是对的。我只是愚蠢地把自己放进去,尽管我没有任何办法。将字符串或任何其他变量放入工作中。谢谢你,我很抱歉你不得不向我解释。仍然在学习我已经在jobj实例上调用了set_options方法,并且收到了相同的错误。